Google apps script 触发器对我有效,但对我的同事无效
我找到了一个解决方案——我禁用了由ChromeV8支持的新应用程序脚本运行时,这使得脚本可以正常运行。感谢player0和Cooper的帮助 我正在Google Sheets上运行一个脚本,当我们从下拉框中选择completed时,它会将日期添加到旁边的单元格中,并将整行电子邮件发送到指定列中的电子邮件,然后将该行移动到另一个电子表格中。触发器对我们整个办公室都有效,但现在触发器只对我有效,对其他人无效。我尝试手动添加触发器,但仍然不起作用。他们将在发送电子邮件时收到提示,单击“是”或“否”,但不会添加日期,也不会发送电子邮件,并且该行不会移动到其他电子表格。我将附加脚本。 PS,我从办公室里的其他人那里得到了这个错误- “insertId”:“-b34c8mev3dmh”,“jsonPayload”:{ “serviceContext”:{ “服务”:“AKfycbyWSN3cTy8EFQa-O0BdEkD1-mv2Ch0_QJyGdxwARQ” }, “背景”:{ “报告地点”:{ “函数名”:“onEdit”, “文件路径”:“代码”, “行号”:3 } }, “消息”:“TypeError:无法读取onEdit(代码:3:14)上未定义的\n属性'columnStart'”},“资源”:{ “类型”:“应用程序脚本函数”, “标签”:{ “函数名称”:“onEdit”, “调用类型”:“未知”, “项目id”:“项目id-7782795119186644705” }},“时间戳”:“2020-03-03T19:26:06.684Z”,“严重性”:“错误”,“标签”:{ “EA1GOY-5ZvvTZZZZZZZZZWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW, “script.googleapis.com/user_key:“ajbqszan4nkogmzvons0mjntlfxm27ajlvzlz1zgk0gt3p+b6sGQERsGNxTDk0oSVmVtWCL6r0G”, “script.googleapis.com/deployment_id”:“AKfycbyWSN3cTy8EFQa-O0BdEkD1-mv2Ch0_QJyGdxwARQ”, “script.googleapis.com/project_key”:“MKysurstsXJM-RhbK-YQe446zZFpi0V11”},“logName”: “projects/project-id-7782795119186644705/logs/script.googleapis.com%2Fconsole\u logs”, “接收时间戳”:“2020-03-03T19:26:07.288469136Z”Google apps script 触发器对我有效,但对我的同事无效,google-apps-script,google-sheets,triggers,scripting,Google Apps Script,Google Sheets,Triggers,Scripting,我找到了一个解决方案——我禁用了由ChromeV8支持的新应用程序脚本运行时,这使得脚本可以正常运行。感谢player0和Cooper的帮助 我正在Google Sheets上运行一个脚本,当我们从下拉框中选择completed时,它会将日期添加到旁边的单元格中,并将整行电子邮件发送到指定列中的电子邮件,然后将该行移动到另一个电子表格中。触发器对我们整个办公室都有效,但现在触发器只对我有效,对其他人无效。我尝试手动添加触发器,但仍然不起作用。他们将在发送电子邮件时收到提示,单击“是”或“否”,但
问题与自动切换到有关
回到旧的运行时解决了这个问题,如果您愿意,您可以将此错误报告给。您的同事需要为自己授权脚本,并给他们一个运行的函数。它甚至可以是一个不做任何事情的函数,这样他们就可以有机会授权scopes.player0-他自己如何授权脚本?Cooper-我如何给他们一个运行的函数?我刚刚把答案作为一个社区Wiki,如果你真的想提供一个更详细的解决方案来说明你是如何解决你的问题的,请随意创建一个答案,这样我就可以删除我的答案了。
function onEdit(e) {
// we need to be in column 13 in order to do something (at all)
if(e.range.columnStart === 13) {
var s = e.source.getActiveSheet();
// only continue if it's completed and where in the correct tab
if(e.value == "Completed" && s.getName() == "Open Requests") {
var r = e.range;
var userEmail = r.offset(0,-9).getValue();
var name = r.offset(0,-7).getValue();
var subject = "Technology Request for " + name;
var body = "Your request has been completed by " + r.offset(0,-1).getValue();
body += "\nfor - " + r.offset(0,-7).getValue();
body += "\nby doing the following: " + r.offset(0,-2).getValue();
body += "\nOriginal problem was stated as: " + r.offset(0,-4).getValue();
// show dialogue
var ui = SpreadsheetApp.getUi();
var response = ui.alert('Are you sure you want to send this email to ' + userEmail + '?', 'Subject: ' + subject + '\n\n' + body + '\n\n\n', ui.ButtonSet.YES_NO);
// process the user's response.
if (response == ui.Button.YES) {
MailApp.sendEmail(userEmail, subject, body, {name:"Technology Dept"});
}
// add time stamp
e.range.offset(0, 1).setValue(new Date());
// move the row elsewhere
var numColumns = s.getLastColumn();
var targetSheet = e.source.getSheetByName("Closed Requests");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(r.rowStart, 1, 1, numColumns).moveTo(target);
s.deleteRow(r.rowStart);
}
}