我使用这个代码,虽然在过去它工作得很好,但今天我收到了这个错误消息:
目标范围的坐标超出了工作表的尺寸。(第27行,___.gs)
我的代码并不太复杂:
function onEdit() {
var sheetNameToWatch1 = "Assign_Page";
var columnNumberToWatch = 19;
var valueToWatch = "Delivred";
var sheetNameToMoveTheRowTo = "K_Delivery_Archive";
var sheetNameToMoveTheRowTo2 = "Buffering";
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getActiveCell();
if (sheet.getName() == sheetNameToWatch1 && range.getColumn() == columnNumberToWatch && range.getValue() == valueToWatch) {
var targetSheet = ss.getSheetByName(sheetNameToMoveTheRowTo);
var targetRange = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
sheet.getRange(range.getRow(), 1, 1, 22).copyTo(targetRange, {contentsOnly: true});
var targetSheet2 = ss.getSheetByName(sheetNameToMoveTheRowTo2);
var targetRange2 = targetSheet2.getRange(targetSheet2.getLastRow() + 1, 1);
sheet.getRange(range.getRow(), 1, 1, 22).copyTo(targetRange2, {contentsOnly: true});
sheet.deleteRow(range.getRow()); // line 27
var Sheet1 = ss.getSheetByName("Clients_Page");
var Sheet2 = ss.getSheetByName("Assign_Page");
var Sheet3 = ss.getSheetByName("Report");
var Sheet4 = ss.getSheetByName("Delivery_Information");
Sheet4.showSheet();
Sheet1.hideSheet();
Sheet2.hideSheet();
Sheet3.hideSheet();
}
}
是什么导致了这个错误,我如何解决它?
发布于 2018-06-01 02:32:31
这个问题很可能是由于
targetSheet2.getLastRow()+ 1
正确的解决方案将取决于OP没有提到的几个因素,但这里有一个提示:
如果工作表具有返回""
的开放式公式,则最后一行与工作表中的最大行数相同,插入更多行将不能解决问题。
https://stackoverflow.com/questions/46825809
复制相似问题