【问题标题】:TypeError when trying to use getRange尝试使用 getRange 时出现 TypeError
【发布时间】:2022-10-21 05:45:06
【问题描述】:

注意:这是规范 Q/A 的提议

作为新的 Google Apps 脚本用户,我正在为如何修复此错误而苦苦挣扎

使用默认运行时会发生这种情况

TypeError:无法读取 null 的属性“getRange”

使用旧运行时时会发生这种情况

TypeError:无法调用 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');
}

直接从spreadsheet 变量中使用getActiveSpredsheet() 和getRange

function myFunction(){
  const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  spreadsheet.getRange('A1');
}

【问题讨论】:

    标签: google-apps-script google-sheets null typeerror


    【解决方案1】:

    发生错误是因为电子表格没有名为 my sheet 的工作表。请记住,getSheetByName 参数应与工作表名称完全相同:

    • 字符数相同
    • 相同大小写(大写/小写)
    • 字符不仅应该看起来相同,它们应该相同,即一个空间看起来类似于人眼作为一个不间断的空间,但对于计算机来说它们是不一样的。

    您可以尝试在 Google 表格 UI 和 Google Apps 脚本编辑器上再次输入工作表名称,或者从一个位置复制名称并将其粘贴到另一个位置。

    注意:您可以使用变量名称或将工作表名称直接放在括号内。如果您将工作表名称放在括号内,则应将其括在'(撇号/直单引号)、"(直双引号)或`(重音/反引号)之间。

    使用getActiveSpreadsheet()getActiveSheet() 时可能会发生同样的错误,因为没有活动电子表格或活动工作表 分别。在独立项目上使用这些方法时,通常会发生这种情况。在这些情况下,首先您必须使用以下 SpreadsheetApp 方法之一打开电子表格 open(file)openById(id)openByUrl(url),然后您可以在 getActiveSpreadsheet() / getActiveSheet() 方法之前使用 .activate()

    资源

    相关(从最旧到最新)

    【讨论】:

      猜你喜欢
      • 2020-05-10
      • 2017-10-17
      • 1970-01-01
      • 2011-01-16
      • 2020-10-29
      • 2016-05-25
      • 2021-12-13
      • 2014-03-14
      • 2021-07-06
      相关资源
      最近更新 更多