如何修复 Google Apps 脚本中的“TypeError:无法调用 null 方法”getRange”

How to fix 'TypeError: Cannot call method "getRange" of null' in Google Apps Script

提问人:tnels 提问时间:6/21/2019 最后编辑:tnels 更新时间:10/2/2020 访问量:1396

问:

我正在设置一个脚本,以使用 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] 未定义 未定义

javascript google-apps-script google-sheets 类型错误

评论

0赞 ross 6/21/2019
它要么没有从你的中找到电子表格,要么没有找到名称为“SAT”的工作表,请在你的代码中使用并将日志详细信息添加到问题中。openById()Logger.log(ss + ' ' + sheet);

答:

3赞 TheMaster 6/21/2019 #1

问题:

sheet.getRange("A2:A16")

TypeError:无法调用 null 的方法“getRange”。(第 14 行,文件“代码”)

错误意味着是和没有方法。只有真正的类才能做到。sheetnullnullgetRangeSheet

正如文档中所写的,只有一个原因,返回的是 .sheetnull

如果没有具有给定名称的工作表,则返回 null。

答案只有一个。这是当该工作表名称不存在时。

可能的解决方案:

sheet名称是指电子表格/工作簿中的选项卡名称。它不引用文件名或文档名称。默认情况下,第一个工作表/选项卡名为“Sheet1”。尝试

ss.getSheetByName("Sheet1");

如果仍然无法获取工作表,请检查工作表名称中是否有空格和不可打印的字符。或者,将工作表重命名为简单的名称,例如 .S1

评论

1赞 tnels 6/21/2019
这正是我的问题,只是我不得不将其命名为(“Sheet1”)而不是(“Sheet 1”)。谢谢。