【问题标题】:Google spreadsheet "Cannot call method "getRange" of null"Google 电子表格“无法调用 null 的方法“getRange””
【发布时间】:2015-10-19 07:28:37
【问题描述】:

如果 B 列从第 6 行开始的每一行都发生了变化,我想在 A 列中生成一个唯一 ID。使用从 1 到 X 的数字作为 ID 就足够了,但在移动 de 行后它不应该改变。但是我不断收到错误“无法调用 null 的方法“getRange”。”

function onEdit() {
 var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('ScriptTest');
 var column0 = sheet.getRange(6, 2, sheet.getLastRow()-6, 1);
 var oValues = column0.getValues();

 if (oValues[sheet.getLastRow()][0] == '') {
   sheet.getRange(sheet.getLastRow(), 1, 1, 1).setValue(ContentService.createTextOutput(sheet.getLastRow()-6));
 }  
}

【问题讨论】:

  • 脚本测试是选项卡的名称还是文档的名称?您需要提供当前工作表的名称,而不是 getSheetByName() 中的文档。
  • 这是当前工作表的选项卡名称。感谢您的回复!
  • 这很奇怪。你能在你声明column0的行上放一个断点,然后在调试模式下运行这个函数吗?它是否有工作表作为对象,括号中带有 id?您确定选项卡名称是 ScriptTest,而不是 Scripttest 或 Script Test 或 scriptTest?
  • 好吧,我三次检查了标签名称,但拼写错误。谢谢你的帮助!如果你写一个答案,我会打勾(:
  • 很高兴它现在正在工作,我发布了一个详细说明这个问题的答案。

标签: google-apps-script google-sheets


【解决方案1】:

当您在使用像这里这样的工作表对象时遇到错误时,您可以通过它从中提取的缺失值类型轻松识别源。

undefined 未定义,这意味着工作表的变量从未被赋予值或被设置为未定义。

当您尝试使用不存在的名称获取选项卡时,该变量设置为null,就像这里的情况。

其他任何情况都可能意味着您访问了错误的变量。

【讨论】:

  • 刚开始使用谷歌应用脚​​本感谢帮助提高我的技能!
猜你喜欢
  • 2017-01-09
  • 1970-01-01
  • 2016-12-16
  • 1970-01-01
  • 2018-05-25
  • 2019-11-03
  • 1970-01-01
  • 2016-05-13
  • 1970-01-01
相关资源
最近更新 更多