我是脚本新手,正在寻求帮助。我已经看到了关于这个主题的一些其他主题,但他们有点过头了。
我需要一个基于单元格内容(BB5)隐藏某些列的脚本。
实施例: 如果BB5 = 3隐藏列J-K,AJ-AM,AV和BA。 如果BB5 = 2隐藏H-K,AF-AM,AU-AV和AZ-BA列。
非常感谢任何帮助。
答案 0 :(得分:0)
示例:如果BB5 = 3隐藏列J-K,AJ-AM,AV和BA。如果BB5 = 2隐藏H-K,AF-AM,AU-AV和AZ-BA列。
function hideMyColumns()
{
var ss=SpreadsheetApp.getActive();
var sh=ss.getActiveSheet();
var vl=sh.getRange('BB5').getValue();
var cols1=[10,11,36,37,38,39,48,53];
var cols2=[8,9,10,11,32,33,34,35,36,37,38,39,47,48,52,53];
switch(vl)
{
case 3:
for(var i=0;i<cols1.length;i++)
{
sh.hideColumns(cols1[i]);
}
break;
case 2:
for(var i=0;i<cols2.length;i++)
{
sh.hideColumns(cols2[i]);
}
}
}
工作表用于计算列数
您可以使用此功能来确定列号。只需在正确的行和颜色上选择一个单元格,此函数将为您提供一个字符串,您可以将其复制到可在switch语句中使用的数组中。我使用上面提供的图像来获取所需的列号。
function getColumns()
{
var ss=SpreadsheetApp.getActive();
var sh=ss.getActiveSheet();
var color=ss.getActiveCell().getBackground();
var row=ss.getActiveCell().getRow();
var rg=sh.getDataRange();
var vA=rg.getBackgrounds();
var s='';
var firstTime=true;
for(var i=0;i<vA.length;i++)
{
for(var j=0;j<vA[0].length;j++)
{
if(i+1==row && vA[i][j]==color)
{
if(!firstTime){s+=',';}
s+=Number(j+1);
firstTime=false;
}
}
}
s+='<br />For color = ' + color + '<br />Row = ' + row;
var userInterface=HtmlService.createHtmlOutput(s);
SpreadsheetApp.getUi().showModelessDialog(userInterface, 'Column Numbers');
}