您可以使用触发器onEdit()来检查是否要更改D3中的任何值,然后更改每张纸的过滤器。请记住,只有在手动进行更改而不是通过脚本或函数进行更改时,才会触发此操作:
function onEdit(e) {
var sheet = e.source.getActiveSheet();
var sheet_name = sheet.getName();
//Run only if the Column C from 1 to x is edited in Sheet Employees
if (sheet_name == 'Employee' && e.range.getColumn() == 3 && e.range.getRow() > 1){
var new_value = e.value;
var sprsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheets = sprsheet.getSheets();
for (var i = 1; i < sheets.length; i++){
var filter = sheets[i].getFilter();
var values = ['WD','WE','WN']; //Values of the filter
switch(new_value){
case values[0]:
var filterCriteria = SpreadsheetApp.newFilterCriteria()
.setVisibleValues([values[0]])
.setHiddenValues([values[1],values[2]]);
break;
case values[1]:
var filterCriteria = SpreadsheetApp.newFilterCriteria()
.setVisibleValues([values[1]])
.setHiddenValues([values[0],values[2]]);
break;
case values[2]:
var filterCriteria = SpreadsheetApp.newFilterCriteria()
.setVisibleValues([values[2]])
.setHiddenValues([values[0],values[1]]);
break;
}
filter.setColumnFilterCriteria(4,filterCriteria);
}
}
}
我敢肯定有一种更优雅的方法可以解决这个问题。
参考:
本文链接:https://www.f2er.com/3129024.html