You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Sheet脚本设置筛选公式失败问题求助

问题解决:Google Sheets脚本设置筛选公式失败

错误原因

你的代码核心问题是公式字符串的引号嵌套错误,导致JavaScript语法报错,无法保存运行:

  • 外层用双引号包裹公式时,内部的双引号未转义,还多了冗余双引号,造成语法混乱。
  • 额外提一句:你定义的formula变量里用了位运算符|,应该换成逻辑或运算符||,不过这个变量没实际用到,不影响当前功能,但建议修正。

修正后的代码

function myfunction5() { 
    let ss = SpreadsheetApp.getActiveSheet();
    let filter = ss.getFilter(); 
    // 修正逻辑或运算符,后续需要用到可保留
    const formula = r => r[4] == "Maxime" || r[6] == "Eric";
    // 方案1:用单引号包裹公式,内部双引号无需转义
    const newCriteria = SpreadsheetApp.newFilterCriteria() 
      .whenFormulaSatisfied('=OR(D3="George"; E3="Eric")')
      .build(); 
    // 方案2:用双引号包裹,内部双引号转义为\"
    // const newCriteria = SpreadsheetApp.newFilterCriteria() 
    //   .whenFormulaSatisfied("=OR(D3=\"George\"; E3=\"Eric\")")
    //   .build(); 
    filter.setColumnFilterCriteria(3, newCriteria); 
}

额外注意事项

  • 确认setColumnFilterCriteria(3, newCriteria)里的列索引3(对应C列)是你要应用筛选的列,你的公式基于D、E列值,这个逻辑是成立的。
  • 确保当前工作表已存在筛选器(ss.getFilter()不会返回null),如果没有,需要先调用ss.createFilter()创建筛选器,否则会报错。

内容的提问来源于stack exchange,提问作者Sébastien Chevin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 10:16:05