我有一个电子表格,可以用作模板。这个电子表格里面有几个脚本,我遇到的问题是当你复制电子表格时,我的所有脚本都停止工作。我必须进入每个脚本并再次手动授权。Google工作表,脚本在复制后停止工作。
我们将为通过我的部门进行的每项工作制作主电子表格的副本。大约每天20-30份主人将由多人制作。
有没有办法避免这种情况?
请参阅下面的示例代码和电子表格。
感谢,
泰勒
function customDocEmail(){
var sheet = SpreadsheetApp.getActiveSheet();
if (sheet.getName() == "Version 1 ") {;
var ss = SpreadsheetApp.getActiveSpreadsheet();
var triggerCell = sheet.getRange("C17").getValue().toString();
var email = sheet.getRange("A17").getValue().toString();
var EMAIL_SENT = new Date() ;
var recipients = "[email protected]";
var cellA1 = ss.getSheetByName("Version 1 ").getRange("A1").getValue().toString();
var cellB2 = ss.getSheetByName("Version 1 ").getRange("B2").getValue().toString();
var cellD1 = ss.getSheetByName("Version 1 ").getRange("D1").getValue().toString();
}
var subject = 'New customDoc ' + cellA1+ '-' +cellB2;
var body = ' Hi Stephanie,' + '\n' + '\n' + 'This job ' + cellA1 + '-'+ cellB2+ ', is being created as a CustomDoc.. Please view the specs for this job. ' + '\n' + ss.getUrl() +' '+ '\n' + '\n' +'Thank you,' + '\n' + cellD1 +' ' ;
if (triggerCell =="YES")
{MailApp.sendEmail(recipients, subject, body);
sheet.getRange("C17").setValue("SENT");
}
}
function templateMagix() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Version 1 ");
var trigger = sheet.getRange("B3").getValue().toString();
var formNumber = sheet.getRange("A23").getValue().toString();
var boom = sheet.getRange("C23").getValue().toString();
if (boom =="BOOM")
sheet.getRange("B3").setValue(formNumber);
}
使用这样的中央脚本将无法正常工作,因为他从每个电子表格中调用不是来自webapp的脚本。一个workarround是使用onOpen从菜单中显示一个菜单并授权一次。 –
我试着创建onOpen菜单并授权它,但脚本仍然无法使用。难道我做错了什么? –