目标范围的坐标超出了纸张的尺寸

时间:2017-10-19 08:36:59

标签: google-apps-script google-sheets

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

  

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

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

1 个答案:

答案 0 :(得分:0)

问题很可能是由于

造成的
targetSheet2.getLastRow()+ 1

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

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