Search code examples
google-sheetsgoogle-apps-script

I want to use a macro to check a value in a sheet and return one of two values


I have three tabs on my Google Sheets - called "Credentials", "Credentials-fullsales" and "Credentials-reservations" I need a Macro that goes to each of those tabs, checks the contents of cell B4. If there is a "1" in there, it needs to change it to "2". If there is a "2" in there, it needs to change it to "1"

On the face of it pretty simple, but I have't done much Macro coding and my skillset is extremely low!

Below is the code I've been trying, but it gives me a "range is not defined" error. Any ideas or tips?

TIA

function UntitledMacro3() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Credentials'), true);
  spreadsheet.getRange('B4').activate();
  var value = range.getValue();
  if (value == 1) {
    range.setValue(0);
  } else if (value == 0) {
    range.setValue(1);
  }
var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Credentials-reservations'), true);
  spreadsheet.getRange('B4').activate();
  var value = range.getValue();
  if (value == 1) {
range.setValue(0);
  } else if (value == 0) {
range.setValue(1);
  }
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Credentials-fullsales'), true);
  spreadsheet.getRange('B4').activate();
  var value = range.getValue();
  if (value == 1) {
    range.setValue(0);
  } else if (value == 0) {
    range.setValue(1);
  }
  }

Solution

  • You can try this;

    function checkData(){
      var spreadsheet = SpreadsheetApp.getActive();
    
      var sheetnames = ['Credentials', 'Credentials-reservations', 'Credentials-fullsales'];
    
      sheetnames.forEach(function (shName) {
        var sheet= spreadsheet.getSheetByName(shName);
        var data= sheet.getRange('B4').getValue();
    
        if (data==1){
          sheet.getRange('B4').setValue(0);
        } else {
          sheet.getRange('B4').setValue(1); 
        }
        })
    }