【发布时间】:2019-11-20 15:42:05
【问题描述】:
我在使用多个脚本的 Google 表格中创建了一个审核模板。该脚本旨在在用户单击复选框时使用活动用户的电子邮件和时间戳填充单元格。该脚本有效,除了一个人,该脚本无法识别他的活动用户电子邮件。谁能告诉我为什么该脚本适用于某些人而不适用于其他人以及我该如何解决它?
我已经在一个空白的测试电子表格中测试了脚本,它适用于这个人。我们在另一个 Google 表格中遇到了同样的问题,但我们通过创建一个新的电子表格并复制所有选项卡和脚本来解决这个问题。但是,尝试对这个电子表格做同样的事情失败了。
这是我的脚本:
function onEdit(e) { //this is the event Google Sheets fires when cells are changed
var email = Session.getActiveUser().getEmail(); // Get the email address of the person running the script.
var date = new Date();
var spreadsheet = SpreadsheetApp.getActive();
if (e.source.getActiveSheet().getName() == "InterimTestsOfControls") { //only do this if the changed cell is on the specific worksheet you care about
switch (e.range.getA1Notation()) { //This gets the cell that was edited
case "E5": //and this switch statement allows you to only respond to the cells you care about
if (e.value == "TRUE") {
SpreadsheetApp.getActiveSheet().getRange("F5").setValue("Prepared by " + email + " " + date);
Logger.log(email);
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Audit Planning'), true).getRange('C7').activate().setValue(email);
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('InterimTestsOfControls'), true).getRange('C5').activate();
}
else {
SpreadsheetApp.getActiveSheet().getRange("F5").setValue("Click box to sign-off as preparer");
Logger.log(email);
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Audit Planning'), true).getRange('C7').activate().setValue("");
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('InterimTestsOfControls'), true).getRange('C5').activate();
}
}
}
}
【问题讨论】:
-
请使用代码示例功能并格式化脚本以便我们看清楚。
标签: google-apps-script google-sheets