【发布时间】:2015-10-19 19:51:46
【问题描述】:
我的时间触发器不让 onEdit 运行。如果我删除触发器并编辑 Google 工作表 onEdit 将起作用。 但是,当我希望 onEdit 每分钟运行一次时,它就不会运行。 这里是my sheet 和script。
function setTrigger() {
ScriptApp.newTrigger("MOVE")
.timeBased()
.everyMinutes(1)
.create();
}
function onOpen() {
SpreadsheetApp.getUi().createMenu('My Menu')
.addItem('MOVE', 'onEdit')
.addToUi()
}
function onEdit() {
// assumes source data in sheet named Needed
// target sheet of move to named Acquired
// test column with yes/no is col 4 or D
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getActiveSheet();
var r = s.getActiveRange();
if(s.getName() == "Load Board" && r.getColumn() == 3 && r.getValue() == "Closed") {
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("Closed");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).moveTo(target);
s.deleteRow(row);
}
}
【问题讨论】:
-
好吧,我没有看到“MOVE”功能的一个原因 - 这只是您在菜单中给 onEdit 的名称。其次,您为什么不能使用触发器按钮创建它?好像你只创建一次。第三,我认为您可能会在使用时间触发器运行使用 get ActiveSheet 和 getActiveRange 的函数时遇到问题,因为它运行时不会有活动工作表或范围......
-
我尝试从触发按钮添加,问题是:由于 onEdit 设计为在您直接编辑工作表时运行(运行良好)。就我而言,AppSheet(第三方软件)将编辑电子表格,而 onEdit 并没有运行。我想如果我在脚本中添加触发器可能会有所帮助。
-
@JensAstrup 如何将 onEdit 设置为时间触发器?
标签: google-apps-script google-sheets