google-apps-script - 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 运行代码也不起作用。
从一个类似的问题中,我收集到似乎很难重现这个问题,这里是重现的确切步骤:
- 在访客模式下打开 chrome,没有扩展或任何东西
- 使用我的 Google 帐户登录 Google Drive
- 创建电子表格并保持打开状态
- 转到 script.google.com 并使用同一个 Google 帐户登录
- 创建一个新项目并从上面复制/粘贴代码
- 运行“myFunction”6a。首次运行时确认权限
- 得到错误
有人看到我错过了什么吗?
解决方案
您错过了大约2:16 标记创建有界脚本的步骤:工具 > 脚本编辑器...
推荐阅读
- python - 在 macOS 上,Tornado 的 read_bytes 在一次接收超过 1024 个字节时挂起
- powershell - Powershell 检查文件类型
- python - 虚线图不显示
- .net - 取消水晶报表查看器打印对话框后应用程序关闭
- node.js - 如何将应用程序数据与 MongoDB 数据库同步?
- python - 如何保存 GridSearchCV xgboost 模型?
- matlab - 如何使用标题循环遍历 Matlab 表的列?
- bash - 标记字符串 - 错误的结果
- powershell - Powershell / Visual Studio Code: Update version of Powershell in Visual Studio Code
- graphics - 如何在 Spark AR Studio 中的 faceMesh 上创建简单的模糊效果?