enano2054
enano2054

Reputation: 329

Incorrect range width. Google Apps Script & Google Sheets

function slReceive() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheetRSL = ss.getSheetByName("Salt Lake Receive");
  var dataRangeRSL = sheetRSL.getDataRange();
  var lastRowRSL = dataRangeRSL.getLastRow();
  var valuesRSL = dataRangeRSL.getValues();
  var insertArrRSL = new Array();

  for (var j = 0; j < lastRowRSL-1 ; j++){
   insertArrRSL[j] = new Array();
  }

  for (var i = 1; i < lastRowRSL-1 ; i++){

    if (valuesRSL[i][11] == 0){

      insertArrRSL[i][0] = 0;

    }

  }

  var insertRange = sheetRSL.getRange(2,15,lastRowRSL-1,1);
  insertRange.setValues(insertArrRSL);

  Logger.log(valuesRSL);
}

I am struggling getting this to work correctly. I have a column O that is blank. I want the script to go row by row, checking column L and setting the value to 0 if the corresponding cell in L equals 0.

Example, if L2 == 0, set O2 to 0. If L3 == 0, set O3 to 0. And so on.

The error I get when I run this is

Incorrect range width, was 0 but should be 1 (line 24, file "Code")

Upvotes: 0

Views: 476

Answers (1)

Ed Nelson
Ed Nelson

Reputation: 10259

You can make this easier like this. Just deal with the two columns L & O.

  function slReceive1() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Salt Lake Receive");
  var lr = ss.getLastRow();
  var valuesL = sheet.getRange("L2:L"+lr ).getValues();
  var valuesO = sheet.getRange("O2:O"+lr ).getValues();
  for (var i = 0; i < valuesL.length ; i++){
    if (valuesL[i][0] == 0){
          valuesO[i][0] = 0;
      }}
  var insertRange = sheet.getRange("O2:O"+lr);
  insertRange.setValues(valuesO);
}

Upvotes: 1

Related Questions