Javascript Google脚本停止运行,因为没有传递的参数
我有一个功能,我已经在谷歌表单中使用了很长时间,它工作得很好。在我创建了一个新的工作表文档并添加了这个函数之后,它停止了工作。我一直在试图弄清楚谷歌在他们的API中做了哪些改变,但没有成功。这是我的职责:Javascript Google脚本停止运行,因为没有传递的参数,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我有一个功能,我已经在谷歌表单中使用了很长时间,它工作得很好。在我创建了一个新的工作表文档并添加了这个函数之后,它停止了工作。我一直在试图弄清楚谷歌在他们的API中做了哪些改变,但没有成功。这是我的职责: /** * Sums a cell across all sheets * * @param {string} cell The cell (i.e. "B2") * @return number * @customfunction */ function sumAllShee
/**
* Sums a cell across all sheets
*
* @param {string} cell The cell (i.e. "B2")
* @return number
* @customfunction
*/
function sumAllSheets(cell)
{
var sum = 0;
var ss = SpreadsheetApp.getActiveSpreadsheet();
var activeSheet = ss.getActiveSheet().getName();
var sheets = ss.getSheets();
for (var i=1; i < sheets.length; i++) {
var sheet = sheets[i];
var sheetName = sheet.getName();
var sheetRange = sheet.getRange(cell);
sum += parseInt(sheetRange.getValue());
}
return sum;
}
/**
*对所有工作表中的单元格求和
*
*@param{string}单元格单元格(即“B2”)
*@返回号码
*@customfunction
*/
功能汇总表(单元格)
{
var总和=0;
var ss=SpreadsheetApp.getActiveSpreadsheet();
var activeSheet=ss.getActiveSheet().getName();
var sheets=ss.getSheets();
对于(变量i=1;i
is的基本功能是遍历所有工作表,并将单个单元格(即所有工作表中的单元格
B2
)的值相加。在以前的版本中,我能够通过调用so=sumAllSheets(“B2”)
之类的函数,将参数cell
作为字符串传递。这很管用。但是,在新的更新中,单元格
参数为未定义
。你知道什么地方出了问题或者已经改变了吗?我在谷歌文档中找不到任何东西。你是否将第一张表从总数中排除?否则,在循环的第一个语句中,“i”应该设置为0。还可以尝试代码的这种变体
function sumAllSheets(cell) {
var sum = 0;
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheets();
for (var i = 0; i < sheets.length; i++) {
var v = sheets[i].getRange(cell)
.getValue();
sum += parseInt(v ? v : 0);
}
return sum;
}
是的,我不包括第一页,因为那是我显示摘要的地方。但你的密码实际上给了我问题的答案。出于某种未知的原因,当我删除函数上方的注释(更具体地说,这一行是“*@customfunction”)时,一切又开始正常工作了。可悲的是,我在这个“无问题”上浪费了4个小时。。。谢谢你的帮助!
function sumCellOnAllSheets(cell) {
return SpreadsheetApp.getActive()
.getSheets()
.map(function (sh) {
return Number(sh.getRange(cell)
.getValue())
})
.reduce(function (a, b) {
return a + b;
})
}