在我的Google表格中有一个名为onOpen的函数,它将检查C列,如果C列中的值为已关闭,则该行应移至下一张表。
当我直接编辑工作表时,此功能正常工作。问题是功能不起作用如果我用AppSheet更新工作表,另外,时间触发器不会在Google工作表中运行。
function onOpen() {
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);
}
}
答案 0 :(得分:0)
我很难说出你是如何设置你的事件的。
以下是我如何设置一个简单的测试,以确保一切按预期工作。
首先,在附加到电子表格的脚本中设置测试功能:
function timeDrivenTestFunction() {
var emailName = "Time Driven Admin";
var replyTo = "no-reply@someDomain.com";
var email = "yourEmail@someDomain.com";
var body = "Timestamp: " + Date.now();
var subject = "Timestamp Test";
var advancedArgs = {
name: emailName,
replyTo: replyTo,
to: email,
subject: subject,
htmlBody: body,
noReply: true
};
var autoReplyErr = "Error in sending email message. No reply was sent";
try {
MailApp.sendEmail(advancedArgs);
} catch (e) {
MailApp.sendEmail(errorEmail, autoReplyErr);
}
}
现在您已经设置好了,可以为项目添加触发器。
第1步 - 转到Current project's triggers
第2步 - 添加新触发器
第3步 - 将测试功能设置为每分钟作为时间驱动的事件运行。然后单击通知以进入步骤4
第4步 - 设置错误通知,这样如果该功能无法执行,它会向您的Gmail发送一封电子邮件,告知您该功能未能执行,并会说明原因没有执行(即它会给你一些错误信息)
第5步 - 点击“确定”,然后选择“保存”,然后等待几分钟才能启动。它应该可以正常运行,您可能只需要在电子表格中设置权限,以便允许Google用于访问您的Gmail和发送电子邮件的文档。