谷歌脚本错误未找到范围(第6行,文件“代码”)

时间:2017-12-20 20:49:56

标签: google-apps-script google-sheets

answer == 'Y'

}

我一直在运行此代码时遇到错误。错误是未找到范围(第6行)。这个错误的解决方法是什么?

1 个答案:

答案 0 :(得分:0)

这是修改过的脚本。此脚本通过排除您设置的工作表名称来计算。

function getTotalSum(cell) {
  var excludesheets = ["SUMMARY", "TOTAL", "MASTER"]; // Added
  var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
  var sum = 0;
  for (var i = 0; i < sheets.length ; i++ ) {
    var sheet = sheets[i];
    if (!~excludesheets.indexOf(sheet.getName())) { // Added
      var val = sheet.getRange(cell).getValue();
      if (typeof(val) == 'number') {
        sum += val;   
      }
    }
  }
  return sum;
}

编辑:自动重新计算自定义功能,包括其他工作表的值

为了重新计算电子表格,需要让它知道值已更改。但是在=getTotalSum("A1")给出范围时,即使"A1"的值发生更改,"A1"的范围也不会更改。因此,不会重新计算。

作为几种解决方法之一,我认为通过给出单元格的坐标,它可以让电子表格知道单元格值的变化。

  • 例如,当您使用=getTotalSum("A1")对每个&#34; A1&#34; of&#34; sheet1&#34;,&#34; sheet2&#34;和&#34; sheet3&#34;,请修改为=getTotalSum("A1", sheet1!A1, sheet2!A1, sheet3!A1)

注意:

  • 您无需修改​​我的答案脚本。
    • sheet1!A1, sheet2!A1, sheet3!A1不用于自定义功能。这仅用于让电子表格知道单元格值的变化。
  • 通过提供sheet1!A1, sheet2!A1, sheet3!A1,当其中一个&#34; A1&#34;已更改,电子表格可以知道更改并重新计算。