我不知道如何仅将 e 列过滤器用于 if 条件。从 b1 到 e1 4 列过滤器处于活动状态。如果 e 过滤器为空,我想检查 if 条件。然后 if 应该被执行,否则 else。否则清空过滤器。这是不起作用的代码。 function myFunction() { if (SpreadsheetApp.getActive().getActiveSheet().getRange('E1').getFilter() == null) { var spreadsheet = SpreadsheetApp.getActive(); var criteria = SpreadsheetApp.newFilterCriteria() .whenCellNotEmpty() .build(); spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(5, criteria); spreadsheet.getRange('E1').activate(); spreadsheet.getCurrentCell().offset(2, 0).activate(); } else { var spreadsheet = SpreadsheetApp.getActive(); var criteria = SpreadsheetApp.newFilterCriteria() .build(); spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(5, criteria); spreadsheet.getRange('B1').activate(); spreadsheet.getCurrentCell().offset(2, 0).activate(); } }
1 回答

哈士奇WWW
TA贡献1799条经验 获得超6个赞
ColumnFilterCriteria
验证过滤器在 E 列中是否包含
修改线路
if (SpreadsheetApp.getActive().getActiveSheet().getRange('E1').getFilter() == null)
到
if (SpreadsheetApp.getActive().getActiveSheet().getFilter().getColumnFilterCriteria(5) == null) {
解释:
如果过滤器应用于包括 E 列的整个电子表格/数据范围 -getFilter() == null)
将永远不会被满足,即使 E 列不存在过滤条件。
相反,您需要使用getColumnFilterCriteria(5)
返回过滤条件 o的方法null
。
添加回答
举报
0/150
提交
取消