[英]How to use if condition for specific activated value empty column filter in Google Sheets for macro (google-sheets, filter, if, else, script)?
我不知道如何仅对 if 条件使用 e 列过滤器。 从 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();
}
}
ColumnFilterCriteria
修改行
if (SpreadsheetApp.getActive().getActiveSheet().getRange('E1').getFilter() == null)
到
if (SpreadsheetApp.getActive().getActiveSheet().getFilter().getColumnFilterCriteria(5) == null) {
解释:
如果过滤器应用于整个电子表格/数据范围,包括列 E - getFilter() == null)
将永远不会得到满足,即使列 E 不存在过滤条件。
相反,您需要使用getColumnFilterCriteria(5)
方法,该方法将返回一个过滤条件 o null
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.