2015-08-31 28 views
1

我想爲電子表格綁定腳本創建一個可安裝的onEdit觸發器。我想用一個單獨的獨立腳本以編程的方式執行此操作。看起來這應該是可能的根據文檔:獨立腳本可以爲綁定到電子表格的另一個腳本創建觸發器嗎?

請注意,與簡單的onOpen()觸發器不同,可安裝觸發器的腳本不需要綁定到電子表格。要從獨立腳本創建此觸發器,只需將SpreadsheetApp.getActive()替換爲對SpreadsheetApp.openById(id)的調用即可。 https://developers.google.com/apps-script/guides/triggers/installable#managing_triggers_programmatically

然而,當我運行下面的代碼,觸發器被添加到獨立的腳本,而不是項目的目標,電子表格綁定腳本。

function createSpreadsheetEditTrigger() { 
    var ss = SpreadsheetApp.openById('1vcAgQ6vPZiILFX0fB_jojyrSdGKr7goD_iCQcFsImEM'); 
    ScriptApp.newTrigger('update') 
    .forSpreadsheet(ss) 
    .onEdit() 
    .create(); 
} 

我錯過了什麼?

回答

1

那麼,這是可能的,但不是這樣的。我認爲你有點誤解了文檔。換句話說,它所說的是:要創建一個可安裝的觸發器,腳本不需要綁定到目標電子表格。但觸發器一如既往地用於運行腳本本身。沒有爲其他腳本安裝觸發器。

腳本只能設置觸發器爲自己,而且也沒有API來設置一個觸發另一個腳本。

您可以將有界腳本作爲Web應用程序發佈,然後遠程獨立腳本可以調用其URL,基本上「告訴」有界腳本是時候設置其可安裝觸發器。

+0

謝謝你,這現在更有意義。所以告訴我,如果這是正確的:我可以創建一個具有兩個函數(比如functionA()和functionB())的獨立項目,並且在編輯給定的電子表格時創建一個觸發函數functionB()的觸發器。 – zzcrab

+0

是的,沒錯。 –

相關問題