我想为google表格创建一个可安装的触发器,下面是创建它的Apps脚本代码:
function setTrigger() {
var ss = SpreadsheetApp.getActive();
ScriptApp.newTrigger("myFunction").forSpreadsheet(ss).onEdit().create();
}
function myFunction() {
Logger.log('x');
}
当我从Apps脚本运行函数setTrigger()
时,我得到例外:
Exception: Unexpected error while getting the method or property forSpreadsheet on object ScriptApp.TriggerBuilder.setTrigger
说明:
问题是你正在从一个独立的脚本执行这个脚本。
在这种情况下,没有活动的电子表格,因此您需要更改:
var ss = SpreadsheetApp.getActive()
:
var ss = SpreadsheetApp.openById('Spreadsheet_ID');
其中'Spreadsheet_ID'
是电子表格文件的id *.
另一个选择是找到目标电子表格文件并使用当前的解决方案。为此,打开Tools => Script editor
,您的脚本将绑定到电子表格文件。
解决方案:
function setTrigger() {
var ss = SpreadsheetApp.openById('Spreadsheet_ID');
ScriptApp.newTrigger("myFunction").forSpreadsheet(ss).onEdit().create();
}
function myFunction() {
Logger.log('x');
}
*例如,URL中的电子表格IDhttps://docs.google.com/spreadsheets/d/abc1234567/edit gid = 0"abc1234567".