Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 根据导入的单元格值隐藏行_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script 根据导入的单元格值隐藏行

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); }

我试图隐藏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);
}
}
不幸的是,脚本不起作用。谁能给我解释一下这个问题吗


重要提示!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);
    }
  }
}