2017-03-21 23 views
0

我編寫了以下代碼,以便在編輯「BOS」表單中的特定列時運行。時間戳很好,但代碼的第二部分運行了兩次,我不確定爲什麼會這樣。任何幫助將不勝感激!Google Sheet腳本正在複製值兩次

function onEdit() { 
    var s = SpreadsheetApp.getActiveSheet(); 

    // Checks to make sure the right sheet and cell were edited 
    if(s.getName() == "BOS") { 
    var ac = s.getActiveCell(); 
    if(ac.getColumn() == 12) { 

     // Adds a timestamp when a new url is posted 
     var nextCell = ac.offset(0, 1); 
     var date = Date(); 
     nextCell.setValue(date); 

     // Copies the row to the History sheet 
     var row = ac.getRow(); 
     var rangeToCopy = s.getRange(row, 1, 1, 13); 
     var destination = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("History"); 
     var destAvals = destination.getRange("A1:A").getValues(); 
     var destAlast = destAvals.filter(String).length;; 
     rangeToCopy.copyTo(destination.getRange((destAlast + 1), 1), {contentsOnly: true});  
    }; 
    }; 
} 
+0

請在表格中添加輸出。這是一段代碼。 –

+0

第二部分是什麼?什麼部分運行兩次?如果該代碼運行兩次,那麼它不能是代碼。除非發生其他事情,否則該代碼無法運行兩次。有沒有辦法讓它被召喚兩次? –

+0

@NathanielJohnson如何將輸出添加到表單中?對不起,不太熟悉JS/Google腳本 – MarcM

回答

0

@SandyGood是正確的,有一個安裝的onEdit觸發器也在運行,所以它觸發了兩次。謝謝!