按照您的評論:
更改函數的名稱別的,並創建運行於SS打開此功能,在the doc提到的,簡單的觸發器不能做任何事情,需要授權的安裝觸發,但可以安裝的。
![enter image description here](https://i.stack.imgur.com/LpeZV.jpg)
![enter image description here](https://i.stack.imgur.com/hTRTE.jpg)
編輯:完整的示例與您的代碼
在電子表格中保存此手動設置觸發開放與specialonOpen功能(並接受委託後請求),我刷新了瀏覽器並使其與您的菜單和新觸發器一起工作(請參見下面的插圖 - 法語,因爲我使用了另一個帶有舊s的gmail帳戶preadsheet版本,我的英語水平有一個新版本的onFormSubmit不會在新版本一起使用)
function specialonOpen() {
var ss = SpreadsheetApp.getActive();
var items = [
{name: 'Refresh TOL Notes', functionName: 'getNotes'},
null, // Results in a line separator.
{name: 'Coming Soon!', functionName: 'menuItem2'}
];
ss.addMenu('TOL Toolkit', items);
var sheet = ss.getSheetByName('New Notes');
if (sheet == null) {var ss = SpreadsheetApp.getActive();
ss.insertSheet('New Notes',0);
var sheet = ss.getSheetByName('New Notes');
sheet.deleteColumns(3, 18);
sheet.deleteRows(12, 88);
sheet.getRange('a1').setValue('Agent Name');
sheet.getRange('b1').setValue('Tol Notes');
getNotes();
sheet.setColumnWidth(1, 120);
sheet.setColumnWidth(2, 400);
setTrigger() }
getNotes();
setTrigger()
}
function setTrigger() {
var ss = SpreadsheetApp.getActive();
var triggers = ScriptApp.getProjectTriggers();
Logger.log('Amount of triggers ' + triggers.length);
var j = 0;
for (var i = 0; i < triggers.length; i++) {
if (triggers[i].getHandlerFunction() == 'getNotes') {
j++;
}
}
Logger.log('Amount of matching triggers ' + j);
if (j == 0) {
ScriptApp.newTrigger("getNotes").forSpreadsheet(ss).onFormSubmit().create();
}
}
function getNotes() {
var s = SpreadsheetApp.getActive();
var sheet1 = s.getSheetByName('New Notes');
if (sheet1 == null) {
var s = SpreadsheetApp.getActive();
s.insertSheet('New Notes', 0);
var sheet1 = s.getSheetByName('New Notes');
sheet1.deleteColumns(3, 18);
sheet1.deleteRows(12, 88);
sheet1.getRange('a1').setValue('Agent Name');
sheet1.getRange('b1').setValue('Tol Notes');
sheet1.setColumnWidth(1, 120);
sheet1.setColumnWidth(2, 400);
}
}
![enter image description here](https://i.stack.imgur.com/bNFTG.jpg)
![enter image description here](https://i.stack.imgur.com/JA8w3.jpg)
編輯2:用瀏覽器消息的解決方案建議從菜單安裝。
function onOpen() {
var ss = SpreadsheetApp.getActive();
var items = [
{name: 'Install this script', functionName: 'setTriggers'},
];
ss.addMenu('Custom Menu', items);
Browser.msgBox('please run INSTALL from the custom menu');
}
當你說「上面的代碼被稱爲在的OnOpen()觸發」,你的意思是一個叫「的OnOpen」功能,或者您安裝了觸發和運行在開放的功能?請查看此文檔:https://developers.google.com/apps-script/understanding_triggers?hl=fr-FR#Simple –
@Sergeinsas感謝您的回覆和鏈接。 我已經使用這個鏈接中的一些信息來構建我的腳本。 我的意思是我根據鏈接指令在腳本的頂部創建了一個名爲onOpen()的函數。 它建立一個菜單,然後檢查觸發器,如果沒有找到它應該安裝它。這裏是onOpen()代碼,我想我應該把它包括在第一位。http://jsfiddle.net/8gU9m/ – Munkey