提问人:tnels 提问时间:6/21/2019 最后编辑:tnels 更新时间:10/2/2020 访问量:1396
如何修复 Google Apps 脚本中的“TypeError:无法调用 null 方法”getRange”
How to fix 'TypeError: Cannot call method "getRange" of null' in Google Apps Script
问:
我正在设置一个脚本,以使用 Google 表格中的数据在 Google Docs 中自动填充模板文档。我一直遇到“TypeError:无法调用null的方法”getRange“错误。如何解决此错误?
从我所读到的内容来看,此错误通常来自未正确定义变量(在本例中为工作表的名称)。但是,我确定名称与工作表中的文件名相同。我尝试在这两个地方更改名称,甚至制作一个全新的文档。
4. var ss = SpreadsheetApp.openById("13YTb-lQzjijkfOKGsZRQf8fcpt_7sMy5_DX7bvlz5Yo");
5.
6. var sheet = ss.getSheetByName("SAT");
7.
8. var documentId = DriveApp.getFileById('1xrc7K9WfNiB_33y0xsB33209IZPBcpskThanC_yfzCw').makeCopy().getId();
9.
10. DriveApp.getFileById(documentId).setName('SAT Vocab ' + date);
11.
12. var body = DocumentApp.openById(documentId).getBody();
13.
14. var range = sheet.getRange("A2:A16");
这是我收到的错误消息:
TypeError:无法调用 null 的方法“getRange”。(第 14 行,文件“代码”)
这是来自 Logger.log(ss + ' ' + sheet);: [19-06-20 12:30:52:007 CDT] 未定义 未定义
答:
3赞
TheMaster
6/21/2019
#1
问题:
sheet.getRange("A2:A16")
TypeError:无法调用 null 的方法“getRange”。(第 14 行,文件“代码”)
错误意味着是和没有方法。只有真正的类才能做到。sheet
null
null
getRange
Sheet
正如文档中所写的,只有一个原因,返回的是 .sheet
null
如果没有具有给定名称的工作表,则返回 null。
答案只有一个。这是当该工作表名称不存在时。
可能的解决方案:
sheet
名称是指电子表格/工作簿中的选项卡名称。它不引用文件名或文档名称。默认情况下,第一个工作表/选项卡名为“Sheet1”。尝试
ss.getSheetByName("Sheet1");
如果仍然无法获取工作表,请检查工作表名称中是否有空格和不可打印的字符。或者,将工作表重命名为简单的名称,例如 .S1
评论
1赞
tnels
6/21/2019
这正是我的问题,只是我不得不将其命名为(“Sheet1”)而不是(“Sheet 1”)。谢谢。
评论
openById()
Logger.log(ss + ' ' + sheet);