Google表格-如何创建宏以根据条件自动隐藏/显示表格?

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

我在这里完全迷路了!

我的电子表格有一张工作表“ Product Master Record”,其表包含三列:产品ID(数字)|产品说明产品状态。

每个产品在电子表格中都有自己的工作表。每张纸的名称取决于产品状态:

-“有效”产品:图纸名称=产品名称->可见的图纸

-“无效”产品:工作表名称=产品ID->工作表已隐藏

所以我试图编写一个根据条件隐藏/显示工作表的宏:

  1. 产品状态(有效/无效)
  2. 工作表名称(如果名称中包含文本)

我不需要同时写两个条件;只有最简单的代码。

任何想法?谢谢!

javascript google-apps-script google-sheets macros show-hide
2个回答
1
投票

@@ Tedinoz @ user11982798感谢您的快速答复!

这是我尝试修改的基本代码,添加条件:

函数HideSheets(){

var电子表格= SpreadsheetApp.getActive();

spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Guitar'),true);

spreadsheet.getActiveSheet()。hideSheet();

spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Bass'),true);

spreadsheet.getActiveSheet()。hideSheet();

};

可以,但是工作表名称是固定的,并且我希望它根据产品状态或工作表名称是否包含数字是动态的。

直到昨天我还不知道什么是Javascript ...所以我不知道如何编写条件代码并将其包含在此脚本中。


0
投票

这里是您想要的示例:

function HideSheets() {
  var spreadsheet = SpreadsheetApp.getActive();
  var sheet = spreadsheet.getSheetByName('ProdMaster');
  var lrow = sheet.getLastRow();
  var myValue = sheet.getRange("A2:C" + lrow).getValues();

  for (a=1; a<myValue.length+1; a++)
  {
    var target = myValue[a-1];
    var tsheet = spreadsheet.getSheetByName(target[0]);
    if(tsheet==null) spreadsheet.insertSheet(target[0]);
    if(target[2]=='Active') tsheet.hideSheet();
    if(target[2]=='Inactive') tsheet.showSheet();
  }
};
© www.soinside.com 2019 - 2024. All rights reserved.