我需要,如果任何信息被输入到5列,数据的该行复制到其他电子表格。 如果第一个()在我的功能是别的东西,它的数据进行排序时,任何信息被输入到第4列,它的工作原理,但我需要其他的,如果()的工作,但它不会,我已经看过其他问题,但我无法找到答案,将在我的情况下工作。
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);
}
}
}
我已经确定这个问题是与第二,如果块内的最后三行。 看来,行之后“VAR值= rangeToBeMoved.getValues();”,脚本将停止运行,因为如果我把Browser.msgBox(“HI”),该行之后或任何之前,会出现该消息,但如果我把它放在下一行后,它不会出现。 问题是与.openById()? 救命!