Google apps script 根据导入的单元格值隐藏行
我试图隐藏L列(第12列)中包含“否”的所有行。每次打开文档时,我都会尝试使用此脚本。代码是:Google apps script 根据导入的单元格值隐藏行,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我试图隐藏L列(第12列)中包含“否”的所有行。每次打开文档时,我都会尝试使用此脚本。代码是: function onOpen(e){ var sheet = e.source.getActiveSheet(); var r = sheet.getActiveRange(); if (r.getColumnIndex() == 12 && r.getValue() == "no") { sheet.hideRows(r.getRowIndex(),1); }
function onOpen(e){
var sheet = e.source.getActiveSheet();
var r = sheet.getActiveRange();
if (r.getColumnIndex() == 12 && r.getValue() == "no") {
sheet.hideRows(r.getRowIndex(),1);
}
}
不幸的是,脚本不起作用。谁能给我解释一下这个问题吗
重要提示!L列中的所有值都是通过ImportRange函数从另一张图纸导入的。我想知道这是否是个问题…当您第一次打开工作表时,传递到onOpen触发器的事件没有有用的活动范围。值
r.getColumnIndex()
将始终为1,因为活动范围为A1。(它会报告用户所在的单元格,并且用户没有机会移动。)
这里有一种方法可以修改函数以执行所需操作。请注意,它仅适用于多页电子表格中的第一页
function onOpen(e){
var sheet = e.source.getActiveSheet();
var values = sheet.getDataValues();
// Check all rows except the first header row.
for (var row = values.length-1; row > 0; row--) {
// Check if the twelfth column contains "no"
// Since arrays start at 0 but spreadsheet rows & columns
// start at 1, we need to adjust by 1.
if (values[row].length >= (12-1) && values[row][12-1] == "no") {
// The data in column 12 of this row contains "no", so hide it.
sheet.hideRows(row+1,1);
}
}
}