我创建了一个工作表,该工作表的下拉列表中的单元格B23具有“选择一个:”,“推”,“拉”值。我希望默认情况下隐藏第24行。从下拉列表中选择值“ Pull”后,我希望第24行不被隐藏。
您想要:
B23
中的下拉菜单设置为Pull
,则显示第24行。如果是这种情况,您可以将此简单的onEdit
触发器复制到脚本bound to your spreadsheet(在此示例中,包含数据的工作表称为Sheet1
,如果不是这种情况,请相应地进行更改):
function onEdit(e) {
var ss = SpreadsheetApp.getActive();
var sheet = ss.getSheetByName("Sheet1"); // Please change accordingly
var dropdown = sheet.getRange("B23").getValue();
var row = 24;
if (dropdown == "Pull") sheet.showRows(row);
else sheet.hideRows(row);
}
如您所见,不需要使用for
循环,这会减慢执行速度(特别是考虑到每次编辑文件都会运行该循环)。
为了确保第一次打开文件时第24行将被隐藏或相应显示,您可以将onOpen
触发器附加到该函数,如下所示:
function onOpen(e) {
onEdit(e)
}
我希望这会有所帮助。
使用此脚本:
function onEdit(e)
{
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sh=ss.getSheetByName("Sheet1");
var rg=sh.getDataRange();
var vA=rg.getValues();
var xx=sh.getRange("B23").getValue();
for(var i=0;i<vA.length;i++)
{
var row=i+1;
switch(xx)
{
case 'Pull':
if(row=24){sh.showRows(row);}
break;
case 'Select One:':
if(row=24){sh.hideRows(row);}
break;
case 'Push':
if(row=24){sh.hideRows(row);}
break;
default:
}
}
}