我在这里完全迷路了!
我的电子表格有一张工作表“ Product Master Record”,其表包含三列:产品ID(数字)|产品说明产品状态。
每个产品在电子表格中都有自己的工作表。每张纸的名称取决于产品状态:
-“有效”产品:图纸名称=产品名称->可见的图纸
-“无效”产品:工作表名称=产品ID->工作表已隐藏
所以我试图编写一个根据条件隐藏/显示工作表的宏:
我不需要同时写两个条件;只有最简单的代码。
任何想法?谢谢!
@@ 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 ...所以我不知道如何编写条件代码并将其包含在此脚本中。
这里是您要使用的示例,ProdMaster,第1行标头[ProdId,Desc,Status],然后是数据行,并且Status将为Inactive和Active”
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.showSheet();
if(target[2]=='Inactive') tsheet.hideSheet();
}
};