0
我不熟悉Google應用腳本。目前,我試圖創建一個插入行檢測器,並根據行右邊的值更新新行中的值。在線閱讀文檔&其他內容,我創建了以下代碼。但問題是它不起作用。無法檢測通過Google應用程序腳本在Google工作表中插入行嗎?
如何創建一個通用行檢測器或如何解決這個問題?
代碼:
function onChange(e){
var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange('A1').setBackground('green');
//e.range.setNote('Last modified: ' + new Date().toLocaleTimeString() + ' getActiveUser().getEmail(): ' + Session.getEffectiveUser());
if (e.changeType == "INSERT_ROW") {
sheet.getRange('A1').setBackground('red');
// a row or many rows were inserted
if (e.source.getActiveSheet().getName() == "UIDAICheck") {
// Let's set the formula for calculating the End Date/Time of inserted lines
sheet.getRange('A1').setBackground('blue');
var iRow = e.source.getActiveSheet().getActiveRange().getRow();
var iRows = e.source.getActiveSheet().getActiveRange().getNumRows();
var aRange = SpreadsheetApp.getActiveSpreadsheet().getActiveRange();
aRange.setValue('555')
}
}
}
如果有喜歡的安裝安裝觸發器或一些非代碼相關的更改,請分享如何我也許能連接這些點,以及以能夠對行會自動填入單元格的值插入?無可否認,我是新來的整個領土..
PS:我不認爲這段代碼的任何部分工作。這是我的執行成績單:
[17-09-23 13:25:46:950 IST] SpreadsheetApp.getActiveRange() [0 seconds]
[17-09-23 13:25:46:950 IST] Range.getRow() [0 seconds]
[17-09-23 13:25:46:950 IST] Range.getLastRow() [0 seconds]
[17-09-23 13:25:46:950 IST] Range.getColumn() [0 seconds]
[17-09-23 13:25:46:950 IST] Range.getLastColumn() [0 seconds]
[17-09-23 13:25:47:049 IST] Session.getActiveUser() [0.098 seconds]
[17-09-23 13:25:47:050 IST] User.getEmail() [0 seconds]
[17-09-23 13:25:47:050 IST] SpreadsheetApp.getActiveSpreadsheet() [0 seconds]
[17-09-23 13:25:47:058 IST] Starting execution
[17-09-23 13:25:47:103 IST] Execution failed: Script function not found: onEdit [0 seconds total runtime]
你知道是什麼原因導致的onEdit錯誤?除onChange函數外還有其他代碼嗎?任何已安裝的觸發器? –
不完全確定。那麼最初我有一個onEdit觸發器工作得很好,但代碼編輯器運行按鈕有能力只選擇一個功能,所以我刪除了它,並嘗試運行此。無論如何,這段代碼沒有任何部分是專有的,並且可以很容易地由以前做過這件事的任何人重新創建。只要把它放在那裏,以顯示我的嘗試。我認爲如果你可以重新編寫基本代碼,它會更好。 – Deepak