0

I have used this script for so long and it started to error out. The purpose is to archive any row that has an indication of "Yes" in the first column.

It will move from first tab called Tracker to another Archive tab.

The script should then delete the row from the original Tracker tab.

I get the error

Exception: The coordinates of the target range are outside the dimensions of the sheet.

I haven't change dimensions or anything in the script so not sure why its giving me the error now.

function archiveClosed() {
  var responseSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Tracker");
  var responseData = responseSheet.getRange(2, 1, responseSheet.getLastRow(),     responseSheet.getLastColumn()).getValues();
  for (var i = 0; i < responseData.length; i++) {

    var responseRow = responseData[i];

    if(responseRow[0] == "Yes") {

      var numColumns = responseSheet.getLastColumn();
      var numRows = responseSheet.getLastRow()
      var targetSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Archive- Tracker");
      var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
      responseSheet.getRange(i+2, 1, 1, numColumns).copyTo(target);
    }
  }
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Tracker");
  var rows = sheet.getDataRange();
  var numRows = rows.getNumRows();
  var values = rows.getValues();

  var rowsDeleted = 0;
  for (var i = 0; i <= numRows - 1; i++) {
    var row = values[i];
    if (row[0] == 'Yes') {
      sheet.deleteRow((parseInt(i)+1) - rowsDeleted);
      rowsDeleted++;
    }
  }
}

Tried to debug but I dont understand the parameters. I want the script to use the entire range of the spreadsheet.

Rubén
  • 34,714
  • 9
  • 70
  • 166
  • Pick a range that is completely inside of the dimensions of the sheet or give the sheet more rows and columns – Cooper Jan 12 '23 at 23:09

0 Answers0