Reputation: 329
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
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