Google apps script 如何仅在单元格不为空时激活筛选器?
下面是在编辑单元格“B2”时激活并创建筛选器的脚本。 但我想添加一个clear函数,在单元格“B2”为空时清除所有过滤器。 当单元格“B2”不为空时,此脚本应起作用:Google apps script 如何仅在单元格不为空时激活筛选器?,google-apps-script,google-sheets,Google Apps Script,Google Sheets,下面是在编辑单元格“B2”时激活并创建筛选器的脚本。 但我想添加一个clear函数,在单元格“B2”为空时清除所有过滤器。 当单元格“B2”不为空时,此脚本应起作用: function onEdit(e){ var sheetName = "Sheet1"; var editCell = "B2"; var range = e.range; var sheet = range.getSheet(); if (range.getA1No
function onEdit(e){
var sheetName = "Sheet1";
var editCell = "B2";
var range = e.range;
var sheet = range.getSheet();
if (range.getA1Notation() == editCell && sheet.getSheetName() == sheetName) {
updatefilter(sheet);
} else {
// do something
}
}
function updatefilter(sheet) {
sheet.getRange('B3').activate();
var criteria = SpreadsheetApp.newFilterCriteria().whenFormulaSatisfied("=(B3:B=$B$2)").build();
var filter = sheet.getFilter();
if (!filter) {
filter = sheet.getRange("A3:H").createFilter();
}
filter.setColumnFilterCriteria(2, criteria);
};
当单元格为空时,您知道如何添加“全部清除”过滤器吗
这是一个电子表格的工作链接-
说明:
您可以添加一个if
条件,以检查用户是否删除了B2
的当前值,或者是否将其替换为非空的值
- 如果用户将
的值替换为非空值,请执行B2
功能updatefilter
- 如果用户删除了当前值
,请清除B2
中的过滤器表1
如果该函数能够正常工作,那么它将只适用于用户编辑,并且只执行不需要权限的函数请在问题中发帖,NoCode=>NoHelp
function onEdit(e){
var sheetName = "Sheet1";
var editCell = "B2";
var range = e.range;
var sheet = range.getSheet();
if (range.getA1Notation() == editCell && sheet.getSheetName() == sheetName) {
// *** New code starts ***
if(e.range.getValue()!=''){
updatefilter(sheet);
}
else {
sheet.getFilter().remove();
};
// *** New code ends***
}
}
function updatefilter(sheet) {
sheet.getRange('B3').activate();
var criteria = SpreadsheetApp.newFilterCriteria().whenFormulaSatisfied("=(B3:B=$B$2)").build();
var filter = sheet.getFilter();
if (!filter) {
filter = sheet.getRange("A3:H").createFilter();
}
filter.setColumnFilterCriteria(2, criteria);
};