这篇文章中包含的代码在插件中使用可安装的"编辑时"触发器。当我将文档的 id 作为参数传递给 Google Apps 脚本中的.forSpreadsheet(ssss)
时,控制台中出现一条错误消息:
此加载项正在尝试在当前未使用它的文档上创建触发器。
似乎附加组件无法正确识别活动工作表。函数应该放在哪里? onInstall()
, onOpen()
?
function createSpreadsheetEditTrigger() {
var ssss = SpreadsheetApp.getActive().getId();
ScriptApp.newTrigger('onEditTrigger')
.forSpreadsheet(ssss)
.onEdit()
.create();
}
function onEditTrigger(e){
isSheetName('SheetName') && sendingEmailFunction(e);
}
不要使用 ID。
现在:
var ssss = SpreadsheetApp.getActive().getId();
应该是:
var ssss = SpreadsheetApp.getActive();
.forSpreadsheet(ss)
的参数ss
必须是电子表格对象。 您正在输入一个字符串。 getId()
返回一个字符串。 始终查看返回的数据类型以及所需的数据类型。
谷歌文档
来自 https://developers.google.com/apps-script/guides/triggers/installable#managing_triggers_programmatically
function createSpreadsheetEditTrigger() {
var ss = SpreadsheetApp.getActive();
ScriptApp.newTrigger('myFunction')
.forSpreadsheet(ss)
.onOpen()
.create();
}