Google Apps Script调用whenTextNotEqualToAny触发布尔条件错误问题
报错原因
whenTextNotEqualToAny()方法仅支持绑定了外部数据源的关联工作表,普通本地Google Sheet不支持该方法对文本、日期字段做非相等类的筛选判断,因此触发该报错。
同时你的代码还存在一个遗漏:所有newFilterCriteria()生成的构造器,最终必须调用.build()方法才能生成合法的筛选条件对象,否则即使方法适用也会报错。
解决方案
普通本地表格的排除类筛选可以通过setHiddenValues()方法实现,效果和你预期的“筛选出不等于列表内任意值的内容”完全一致,修改后的代码如下:
function filtertTrackerData(range){ const filter = range.createFilter(); const Filter_Criteria1 = SpreadsheetApp.newFilterCriteria() .setHiddenValues(["CANCEL REQUEST BY CLIENT","CANCELLED","CANCELLED DUE TO PERMIT ISSUE","PULLOUT"]) .build(); const Filter_Criteria2 = SpreadsheetApp.newFilterCriteria() .setHiddenValues(["CLOSED THRU DAS / JO MOBILE","CANCEL IN IBAS","CANCELLED","CANCELLED AT IBAS","CANCELLED BY SUBSCRIBER","CLOSED VIA JO MOBILE"]) .build(); filter.setColumnFilterCriteria(3,Filter_Criteria1); filter.setColumnFilterCriteria(4,Filter_Criteria2); }
如果后续你使用的是连接了外部数据源的工作表,再换回whenTextNotEqualToAny()方法即可,同样需要加上.build()调用。
内容的提问来源于stack exchange,提问作者plaridel1
相关产品推荐
相关产品推荐

