Reputation: 159
Im using this code to set some values depending on a column if the days are <= -4
function SetValues(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var responses = ss.getSheetByName("tt");
var data = responses.getRange(1,1,responses.getLastRow(),responses.getLastColumn()).getValues();
data.forEach(function(row,i) {
var date = row [0];
var nombre = row [1];
var pidePor = row [2];
var fechaFin = row [3];
var dias = row [4];
if (dias <= -4){
var val = responses.getRange( i + 1, 2).getValue();
responses.getRange( i + 1, 2).setValue(val);
var val = responses.getRange( i + 1, 3).getValue();
responses.getRange( i + 1, 3).setValue(val);
var val = responses.getRange( i + 1, 4).getValue();
responses.getRange( i + 1, 4).setValue(val);
}
});
}
Its working fine in the referenced tab, but what I need is to be able to run it all over my sheets excluding some tabs
Anyone can help me please how to accomplish this ?
I've been trying for hours with no luck on this
Thanks !
Upvotes: 1
Views: 136
Reputation: 64040
Try this:
function runSetValuesExceptForSomeSheets(){
var ss=SpreadsheetApp.getActive();
var sheets=ss.getSheets();
var excluded=['Sheet1','Sheet4'];//add names of sheets that are excluded
for (i=0;i<sheets.length;i++) {
if(excluded.indexOf(sheets[i].getName())==-1) {
var sheet=sheets[i];
var data=sheet.getDataRange().getValues();
for(var j=0;j<data.length;j++) {
if(data[i][4]<=4) {
var valA=sheet.getRange(i + 1,2,1,3).getValues();//This makes no sense
sheet.getRange(i+1,2,1,3).setValues(valA);//This makes no sense
}
}
}
}
}
Upvotes: 1
Reputation: 1832
All you need to do is put it in a wrapper function
numberAllTheSheets(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
sheets = ss.getSheets();
for (i=0; i<sheets.length; i++){//Avoids sheets named "sheet one" and "sheet four"
if sheets[i].getName=="Sheet One") continue;
if sheets[i].getName=="Sheet Four") continue;
SetValues(sheets[i]);
}
And then modify set values to:
function SetValues(responses){
var data = responses.getRange(1,1,responses.getLastRow(),responses.getLastColumn()).getValues();
data.forEach(function(row,i) {
var date = row [0];
var nombre = row [1];
var pidePor = row [2];
var fechaFin = row [3];
var dias = row [4];
if (dias <= -4){
var val = responses.getRange( i + 1, 2).getValue();
responses.getRange( i + 1, 2).setValue(val);
var val = responses.getRange( i + 1, 3).getValue();
responses.getRange( i + 1, 3).setValue(val);
var val = responses.getRange( i + 1, 4).getValue();
responses.getRange( i + 1, 4).setValue(val);
}
});
}
}
}
Upvotes: 2