我在 A 列中有一个简单的公式,根据单元格 I3 的值对行返回 True 或 False。目前,每次更改单元格 I3 的值时,我都必须手动转到过滤器并选择“确定”来刷新它。这可以通过对单元格 I3 进行任何编辑来触发的脚本来运行吗?
最佳答案
是的,如果单元格 I3 被编辑,您可以自动执行过滤器。我不是过滤器(尤其是脚本化过滤器)方面的专家,因此我创建并重新使用了一个宏。
- 创建一个宏来选择过滤器并“选择是”。将宏重命名为有意义的名称。
- 创建 onEdit(e) 脚本。评估单元格I3是否被编辑;如果是,则运行宏
function onEdit(e){
var ss = SpreadsheetApp.getActiveSpreadsheet()
var sheetname = "P&L";
var sheet = ss.getSheetByName(sheetname);
var erow = e.range.getRow();
// Logger.log("DEBUG: row = "+erow);
var ecolumn = e.range.getColumn();
// Logger.log("DEBUG: column = "+ecolumn);
if (erow == 3 || ecolumn == 8 ){
// there is a match so the cell is I3
// Logger.log("DEBUG: the cell is I3");
updatefilter();
}
else
{
// there is no match so the cell is NOT I3
//Logger.log("DEBUG: the cell is not I3");
}
}
function updatefilter() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange('V3').activate();
var criteria = SpreadsheetApp.newFilterCriteria()
.setHiddenValues(['', 'No'])
.build();
spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(22, criteria);
};
关于google-apps-script - 当特定单元格更改时自动刷新过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56665954/