2014-06-06 57 views
0

編輯:嗨,我試圖讓每個編輯電子表格的人都寫了一個應用程序來調用函數。我一直在尋找谷歌開發者網站https://developers.google.com/apps-script/understanding_triggers,並嘗試了許多不同的語法選項,但目前爲止它們都沒有工作。下面是它的功能(我沒有包含任何我嘗試過的語法選項,只是名爲'onEdit'的函數本身)。我希望此功能執行的是計算指定範圍內具有非白色背景的單元格數量,並在編輯電子表格時更新使用此附加腳本的單元格中顯示的計數。順便說一句,有沒有人知道更改單元格的背景顏色是否會計算爲編輯電子表格?謝謝。使用setInterval或setTimeout來獲得每x秒重複的函數

function onEdit(range) { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getActiveSheet(); 



    var r = sheet.getRange(range); 
    var i = 0; 
    var colors = r.getBackgroundColors(); 

    for(c in colors) { 

    if(colors[c] != "white") { 
     i++; 
    } 
    } 

    return i; 


} 
+0

什麼是工作而不工作? – jfriend00

+0

腳本在運行時工作,但它不會更新我在使用腳本的單元格中顯示的值,當指定範圍內具有非白色背景色的單元格數發生更改時。編輯腳本中的代碼似乎會刷新數字,但這似乎只是有時會起作用,我希望它能自動工作。謝謝。 – Manatee86

回答

0

SetInverval不是JavaScript函數。它是一個dom函數,沒有服務器端腳本。 閱讀關於onChange等觸發器的信息。 如果您爲webapp創建htmlService並且從客戶端調用它,那麼只能在gas中調用setInterval。但那不是你想要的。

+0

謝謝。我已經得到了一個觸發器以前的工作,但它只是在一個警告框中顯示腳本的結果,而不是改變單元格中顯示的值,我是腳本中的Susie。由於很多其他計算都基於在該單元格中的價值,我需要它顯示在那裏,而不是在一個警告框。有任何想法嗎? – Manatee86

+0

好吧,試試吧。在那裏顯示 –

+0

好的,我一直在擺弄觸發器,我編輯了這個問題以反映我正在處理的事情。早些時候,我一直使用腳本編輯器下拉菜單中的觸發器,但由於這些腳本不適用於此腳本,我一直在嘗試將觸發器寫入代碼。我現在試圖調用onEdit函數而不是按設定的時間間隔。謝謝。 – Manatee86

相關問題