我想使用宏来检查工作表中的值并返回两个值之一

问题描述 投票:0回答:1

我的 Google 表格上有三个选项卡 - 称为“凭据”、“凭据-完整销售”和“凭据-预订” 我需要一个宏来转到每个选项卡,检查单元格 B4 的内容。如果其中有“1”,则需要将其更改为“2”。如果里面有“2”,需要改成“1”

表面上很简单,但我没有做过太多宏编码,而且我的技能非常低!

下面是我一直在尝试的代码,但它给了我一个“范围未定义”错误。有什么想法或建议吗?

蒂亚

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);
  }
  }
google-sheets google-apps-script
1个回答
0
投票

你可以试试这个;

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); 
    }
    })
}
© www.soinside.com 2019 - 2024. All rights reserved.