gpt4 book ai didi

javascript - getRange(cell) 在谷歌应用程序脚本中不起作用

转载 作者:行者123 更新时间:2023-12-03 07:01:39 27 4
gpt4 key购买 nike

我对脚本还很陌生。我正在尝试建立一个谷歌工作簿来整理谷歌表单中的条目。每个月,表单中的条目都会转到工作簿中的新工作表中。工作簿中的最后一个工作表总计了所有之前的工作表。

但是,由于工作表的数量无法固定,我无法编写引用所有先前工作表的求和函数。

我现在想要构建一个简单的函数,对所有现有工作表中同一单元格的值进行求和。

我可以控制新工作表的名称,因此所有新工作表的名称将是 SMM1、SMM2、SMM3 等。

  1. 每次执行都会给出“未找到范围”
  2. 在工作表中,使用单元格名称调用此函数会产生奇怪的数字。例如:=totalsheets("E17") 给出 31,即使所有 5 张纸都填写了 1 个 E17,这是我编写的脚本

代码示例:

function totalsheets(cell) {

var sum=0,sname="";

// to find total number of sheets based on fixed 2nd last sheet

var number= SpreadsheetApp.getActiveSpreadsheet().getSheetByName("SMM1").getIndex();

for(var i=1; i<=number; i++)

{

sname="SMM" + i;

var s= SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sname).getRange(cell).getValue();
sum+=s;

}

return sum;

}

最佳答案

试试这个代码:

  function totalsheets(cell) {

var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();

var sum = 0;

for (var i = 0; i < sheets.length; i++) {


var sheet = sheets[i];
var sheetName = sheet.getName();

if (sheetName.substring(0, 3) == 'SMM') {

var val = sheet.getRange(cell).getValue();

if (typeof(val) == 'number') {
sum += val;
}

}

}

return sum;

}

我找到了similiar question here ,它也可能对你有帮助。

关于javascript - getRange(cell) 在谷歌应用程序脚本中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37027174/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com