如何以编程方式将触发器添加到电子表格onformsubmit

时间:2019-09-02 14:25:43

标签: google-apps-script google-sheets triggers

我想知道如何在代码中添加触发onFormSubmit的触发器。

我知道该怎么做:
脚本->版本->项目触发器->添加新

然后在电子表格onFormsubmit上添加触发器以触发功能timerEvent

如您在此屏幕截图中所见: enter image description here

但是我的问题是:如何以编程方式创建触发器?

https://developers.google.com/apps-script/guides/triggers/installable

/* Gobal settings */

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getActiveSheet();

var RangeSheet = ss.getRangeByName("SheettoSync");
var RangeCalendar = ss.getRangeByName("CalendarID");
var RangeMail = ss.getRangeByName("AlertMail");

var calId = RangeCalendar.getValue();
var alertEmail = RangeMail.getValue();
var sheetName = RangeSheet.getValue();

function setTrigger() {
  var ss = SpreadsheetApp.getActive();
  ScriptApp.newTrigger('timerEvent')
    .forSpreadsheet(sheetName)
    .onFormSubmit()
    .create();
}

但是此代码不起作用,我的电子表格没有任何反应。但是,如果我通过Web界面设置触发器,则它会按预期工作。

非常感谢您的帮助,

1 个答案:

答案 0 :(得分:0)

将代码更改为

function setTrigger() {
  var ss = SpreadsheetApp.getActive();
  ScriptApp.newTrigger('timerEvent')
    .forSpreadsheet(ss)
    .onFormSubmit()
    .create();
}

然后您需要手动运行一次功能setTrigger()