1
如果在第5列中輸入任何信息,我需要將該行數據複製到另一個電子表格。我的函數中的第一個if()是用於其他的東西,它會在任何信息輸入到第4列的時候對數據進行排序,但是我需要另一個if()來工作,但它沒有,我看過其他問題,但我找不到適合我的情況的答案。將一行信息複製到另一個電子表格的Google Spreadsheets(應用程序腳本)
function onEdit(event) {
var sheet=event.source.getActiveSheet();
var editedCell=sheet.getActiveCell();
var columnToSortBy=4;
var columnToArchive=5;
var tableRange= "A2:F!";
if(editedCell.getColumn() == columnToSortBy){
var range=sheet.getRange(tableRange);
range.sort({column : columnToSortBy});
}
else{
if(editedCell.getColumn() == columnToArchive){
var rowToBeMoved=editedCell.getRow();
var rangeToBeMoved=sheet.getRange("A" + rowToBeMoved + ":F" + rowToBeMoved);
var values=rangeToBeMoved.getValues();
var archiveSpreadSheet=SpreadsheetApp.openById("0AroBvchobu2edHNXQ3ZUQjI5TWJtWWZwa1UtcExPNnc");
var archiveSheet=archiveSpreadSheet.getSheetByName("archive");
archiveSheet.appendRow(values);
}
}
}
我已經發現問題是在第二個if塊中的最後三行。看起來,在「var values = rangeToBeMoved.getValues();」這一行之後,腳本停止運行,因爲如果我在該行之後或之前的任何地方放置了Browser.msgBox(「hi」),則會顯示該消息,但如果我把它放在下一行之後,它不會出現。問題是與.openById()?幫幫我!
是的,我發現追加行不起作用,得到了修正,但還有另一個問題。 我認爲問題在於,使用event參數時,它不會打開另一個電子表格。似乎有一個錯誤,腳本的編輯觸發似乎與另一張表的打開衝突。 謝謝你的迴應! –