如果在第 5 列中输入了任何信息,我需要将该行数据复制到另一个电子表格。我的函数中的第一个 if() 用于其他内容,它在将任何信息输入第 4 列时对数据进行排序,这有效,但我需要另一个 if() 才能工作,但它没有,我看过其他问题,但我找不到适合我情况的答案。
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() 上?帮助!