首页 > 解决方案 > 如何修复 Google Apps 脚本中的“TypeError:无法调用 null 的方法“getRange””

问题描述

我正在设置一个脚本,以使用 Google 表格中的数据自动填充 Google 文档中的模板文档。我一直遇到“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] undefined undefined

标签: javascriptgoogle-apps-scriptgoogle-sheetstypeerror

解决方案


问题:

sheet.getRange("A2:A16")

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

错误意味着sheetnull并且null没有getRange方法。只有真正的Sheet班级才能做到。

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

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

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

可能的解决方案:

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

ss.getSheetByName("Sheet1");

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


推荐阅读