首页 > 解决方案 > getActiveSpreadsheet() 总是返回 null

问题描述

好的,所以我在这里关注本教程,了解如何设置一个简单的 Google App 脚本,但我被困在18:50左右。在执行与视频中完全相同的操作时,我收到了一条错误消息。

我的 Code.gs 文件中有这段代码:

function myFunction() {

  var app = SpreadsheetApp;
  var ss = app.getActiveSpreadsheet();
  var activeSheet = ss.getActiveSheet();  

  activeSheet.getRange("D2").setValue(99);

}

并在另一个选项卡中打开电子表格。但每次我尝试运行“myFunction”时,都会收到以下错误消息:

TypeError: Cannot call method "getActiveSheet" of null. (line 5, file "Code")

所以出于某种原因var ss = app.getActiveSpreadsheet();显然返回null。当我用 替换该行时它可以工作var ss = app.openById('MySpreadsheetIdHere');,但是对 id 进行硬编码真的不是我想要的,我想让这个脚本与任何打开的电子表格一起工作。

通过 Run > Test as add-on 运行代码也不起作用。

一个类似的问题中,我收集到似乎很难重现这个问题,这里是重现的确切步骤:

  1. 在访客模式下打开 chrome,没有扩展或任何东西
  2. 使用我的 Google 帐户登录 Google Drive
  3. 创建电子表格并保持打开状态
  4. 转到 script.google.com 并使用同一个 Google 帐户登录
  5. 创建一个新项目并从上面复制/粘贴代码
  6. 运行“myFunction”6a。首次运行时确认权限
  7. 得到错误

有人看到我错过了什么吗?

标签: google-apps-scriptgoogle-sheets

解决方案


您错过了大约2:16 标记创建有界脚本的步骤:工具 > 脚本编辑器...


推荐阅读