NOTE: This is a proposal of canonical Q/A. Please discuss it on Meta https://meta.stackoverflow.com/q/420764/1595451
作为新的 Google Apps 脚本用户,我正在努力解决如何修复此错误
使用默认运行时时会发生这种情况
类型错误:无法读取 null 的属性“getRange”
使用旧的运行时时会发生这种情况
类型错误:无法调用 null 的方法“getRange”。
有界项目
function myFunction(){
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
const sheet = spreadsheet.getSheetByName('my sheet');
sheet.getRange('A1');
}
独立项目
function myFunction(){
const spreadsheet = SpreadsheetApp.openByUrl('put_here_a_spreadsheet_url');
const sheet = spreadsheet.getSheetByName('my sheet');
sheet.getRange('A1');
}
Using getActiveSpredsheet()
并直接从spreadsheet
多变的
function myFunction(){
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
spreadsheet.getRange('A1');
}
发生错误的原因是电子表格没有名为的工作表my sheet
。请记住,getSheetByName
参数应与工作表名称完全相同:
- 字符数相同
- 相同的大小写(大写/小写)
- 这些字符不仅应该看起来相同,而且它们应该是相同的,即一个空间看起来与人眼相似,是一个不间断的空间,但对于计算机来说它们并不相同。
您可以尝试在 Google 表格用户界面和 Google Apps 脚本编辑器上再次输入工作表名称,或者从一个位置复制名称并将其粘贴到另一位置。
注意:您可以使用变量名称或将工作表名称直接放在括号内。如果您打算将工作表名称放在括号内,则应将其括在'
(撇号/直单引号),"
(直双引号)或`
(重音/反引号)。
使用时也可能会出现同样的错误getActiveSpreadsheet()
or getActiveSheet()
没有活动电子表格或活动工作表
分别。在独立项目中使用这些方法时通常会发生这种情况。在这些情况下,首先您必须使用以下 SpreadsheetApp 方法之一打开电子表格open(file)
, openById(id)
, openByUrl(url)
,那么你可能会使用.activate()
before getActiveSpreadsheet()
/ getActiveSheet()
方法。
资源
- 处理文本——JavaScript 中的字符串 https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/Strings
相关(从最旧到最新)
- JDBC 从数据库读取...类型错误:无法调用 null 的方法“getRange”。 (9号线) https://stackoverflow.com/q/13002218/
- 无法让 Google 脚本运行 https://stackoverflow.com/q/22367010/
- 类型错误:无法调用 null 的方法“getRange”。 (第 20 行,文件“代码”) https://stackoverflow.com/q/52357590/
- 谷歌表格的保护脚本出现问题 - 无法读取未定义的属性“getRange” https://stackoverflow.com/q/62112801/
- TypeError:无法读取 Google Sheet 脚本中 null 的属性“getRange”(第 6 行,文件“Code”) https://stackoverflow.com/q/62828787/
- 类型错误:无法读取 null 属性“getRange”(第 14 行,文件“Code”) https://stackoverflow.com/q/62887346/
- 类型错误:无法读取 null deleteRows 的属性“getRange” https://stackoverflow.com/q/67228069/
- 谷歌表格的保护脚本出现问题 - 无法读取未定义的属性“getRange” https://stackoverflow.com/q/62112801/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)