getRange(单元格)在谷歌应用程序脚本中不起作用
getRange(cell) not working in google app script
我对脚本还很陌生。我正在尝试建立一个谷歌工作簿来整理谷歌表单中的条目。每个月,表单中的条目的工作簿中都会有一个新的工作表。工作簿中的最后一张工作表汇总了以前的所有工作表。
但是,由于工作表的数量无法固定,我无法编写引用所有以前工作表的求和函数。
我现在想构建一个简单的函数,将所有现有工作表中同一单元格的值相加。
我可以控制新工作表的名称,因此所有新工作表都将是名称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;
}
试试这个代码:
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;
}
我在这里找到了一个类似的问题,它也可能对你有所帮助。
相关文章:
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- 使用谷歌应用程序脚本从工作表中获取值并将其显示在文本框中
- 需要使用谷歌应用程序脚本列出谷歌域下的所有网站
- 从应用程序脚本检查谷歌网站访问权限
- 在谷歌应用程序脚本中转换为空格的制表符
- 如何通过谷歌应用程序脚本从谷歌文档中的位置确定命名范围
- 仅为一个窗体运行应用程序脚本
- 谷歌应用程序脚本示例-如何更改单选按钮的列表框相关值
- 使用谷歌应用程序脚本制作基于谷歌电子表格的带有列表框的网络应用程序
- 应用程序脚本中导入HTML的数据擦除;谷歌表格
- JavaScript onScroll在谷歌应用程序脚本web应用程序中不起作用
- getRange(单元格)在谷歌应用程序脚本中不起作用
- 如何打开文件对象(HTML)并在谷歌应用程序脚本中解析它
- 谷歌应用程序脚本html服务和加载谷歌地图javascript api V3
- 如何使用谷歌应用程序脚本从电子邮件中提取内联文件/图像
- 谷歌应用程序脚本-onFormSubmit-复制到电子表格中的单元格
- 在谷歌应用程序脚本中,如何在满足条件的情况下只发送一次电子邮件
- 若语句出错,谷歌应用程序脚本
- 如何将数组(Google应用程序脚本)返回到HTML侧边栏
- 应用程序脚本-拆分谷歌表单复选框用逗号回答