getActiveSpreadsheet() 始终返回 null

Mar*_*tny 3 google-sheets google-apps-script

好的,所以我正在遵循这里关于如何设置简单的 Google 应用程序脚本的教程,但我被困在18:50左右。我在执行与视频中完全相同的操作时收到错误消息。

我的 Code.gs 文件中有以下代码:

function myFunction() {

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

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

}
Run Code Online (Sandbox Code Playgroud)

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

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

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

通过“运行”>“测试”作为附加组件运行代码也不起作用。

从我收集到的类似问题来看,似乎很难重现这个问题,以下是重现的确切步骤:

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

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

Rub*_*bén 5

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