【发布时间】:2018-05-01 07:03:25
【问题描述】:
我有一个自定义函数,它在工作表的最后一个非空行下插入一个新行,并将特定范围复制到这个新行。当我使用自定义菜单项触发此功能时,此功能可以正常工作。
但是,当我将此自定义函数添加到 onOpen(e) 触发器时,脚本不起作用。我进行了故障排除并在我的函数中添加了一个警报 - 警报触发,因此该函数在正确的位置被读取。
请告知如何让我的脚本在打开时运行?
这是我的自定义函数的代码:
function onOpen(e) {
autoAddRow();
}
function autoAddRow() {
var updateFrequency = 3;
var lRow = getLastRow('A');
var lDate = all.getRange(lRow,1).getValue();
var today = new Date();
Date.prototype.addDays = function(days) {
var dat = new Date(this.valueOf());
dat.setDate(dat.getDate() + days);
return dat;
}
var newDate = lDate.addDays(updateFrequency);
if (today >= newDate) {
var lCol = all.getLastColumn();
var src = all.getRange(3,1,1,6);
var dest = all.getRange(lRow+1,1,1,6);
if(lRow > 20) {
all.insertRowsAfter(lRow, 1);
}
src.copyTo(dest, {contentsOnly:false});
} else {
return;
}
}
【问题讨论】:
-
打开电子表格,然后进入脚本编辑器并使用查看 > 日志查看执行期间发生的情况。可能是无效的范围或会停止执行的调用。
-
在脚本编辑器中运行您的代码。它将识别出许多您可以处理的错误。
标签: javascript google-apps-script google-sheets