我有一個電子表格,可以用作模板。這個電子表格裏面有幾個腳本,我遇到的問題是當你複製電子表格時,我的所有腳本都停止工作。我必須進入每個腳本並再次手動授權。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菜單並授權它,但腳本仍然無法使用。難道我做錯了什麼? –