2012-09-20 86 views
0

我正在玩觸發器。時鐘觸發器更新電子表格,安裝觸發器onEdit未運行

在電子表格中,我有一個函數在新行中插入一個日期。每分鐘運行一次時鐘觸發。如果電子表格打開或關閉(喜歡那部分),則工作正常。

在獨立腳本中,我在上面的電子表格中爲onEdit設置了一個觸發器。它所做的就是給我發e.value。

它可以工作,如果我在電子表格中,只需在單元格中輸入一些字符。

我想「期待」是每次插入日期的第一個觸發器,它會觸發onEdit。唉,事實並非如此。即使我在觸發器之外運行插入日期功能,我的電子郵件onEdit觸發器也不會觸發。

有什麼想法?

我問,因爲我的目標是讓腳本更新啓動onEdit事件的工作表。

吉姆

更新#1:

也許此代碼示例幫助?

我將其簡化爲電子表格容器內的一個腳本。如果我對電子表格進行了任何交互式更改,每個函數都可以正常工作,而第二個函數可以正常工作。

這僅僅是探索,所以請忽略配額的或者什麼,我這裏測試:-)

insertClockTrigger的胡說八道:運行,每分鐘,做工精細

installableOnEdit:從不觸發作爲可安裝onEdit當insertClockTrigger觸發

我很好奇爲什麼看起來是由insertClockTrigger完成的編輯沒有觸發onEdit觸發器。觸發器不觸發觸發器(不能幫助自己!)?

function insertClockTrigger() { 
    var sheet = SpreadsheetApp.openById('spreadsheet-ID').getSheets()[0]; 
    var nDate = new Date(); 
    sheet.getRange(sheet.getLastRow()+1,1,1,1).setValue(nDate).flush; 
} 

function installableOnEdit(e) { 
    GmailApp.sendEmail("[email protected]", "Test trig2", "FISH: "+e.value); 
} 

回答

0

從時鐘觸發功能中調用onEdit函數。

此外,您可能每分鐘都會觸發一次配額問題,以便運行此類觸發器。

0

想我找到了答案。

恩裏克阿布雷烏貼:「在編輯」事件

http://productforums.google.com/d/msg/apps-script/HmBg0p7dOZ8/xMb6wfcfvVQJ

是的,當更改從 使代碼不叫,他們被稱爲僅爲手動更改。此行爲 旨在通過設計,以避免不必要的遞歸問題。 此外,它只是簡單地直接從您的代碼調用您想要的編輯功能 。即當你插入一個新的 票據的腳本這樣做時,它可以直接調用你的「fundEmail」函數, 不需要另一個觸發器。

-1

onEdit應該重命名爲onUserEdit。它不會收到系統更改,只能直接進行用戶編輯。 我還沒有測試過,但onChange可能會做你想做的。