我对脚本相当新鲜。我正在尝试设置一个谷歌工作簿,整理谷歌表格中的条目。每个月,表单中的条目转到工作簿中的新工作表。工作簿中的最后一个工作表总计所有以前的工作表。
但是,由于无法修复工作表的数量,因此无法编写引用所有先前工作表的和函数。
我现在想要构建一个简单的函数,该函数对所有现有工作表中相同单元格的值求和。
我可以控制新工作表的名称,以便所有新工作表都是名称SMM1,SMM2,SMM3等。
=totalsheets("E17")
给出31,即使所有5张在E17中都有1张,这是我写的脚本代码示例:
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;
}
答案 0 :(得分:1)
试试这段代码:
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,它也可以帮到你。