目标范围的坐标在工作表的尺寸之外



我使用此代码,虽然过去它运行良好,但今天我收到此错误消息:

目标范围的坐标在工作表的尺寸之外。(第 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();
  }
}

导致此错误的原因是什么,我该如何解决它?

问题很可能是由于

targetSheet2.getLastRow()+ 1

正确的解决方案将取决于OP未提及的几个因素,但这里有一个提示:

如果工作表具有返回""的开放式公式,则最后一行与工作表中的最大行数相同,并且插入更多行将无法解决问题。

最新更新