如何根据单元格值显示隐藏的行?

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

我创建了一个工作表,该工作表的下拉列表中的单元格B23具有“选择一个:”,“推”,“拉”值。我希望默认情况下隐藏第24行。从下拉列表中选择值“ Pull”后,我希望第24行不被隐藏。

如果单元格B23中的选择=拉,是否可以取消隐藏第24行?enter image description here

validation if-statement google-apps-script google-sheets dropdown
2个回答
1
投票

您想要:

  • 如果B23中的下拉菜单设置为Pull,则显示第24行。
  • 在其他情况下隐藏第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)
}

参考:

我希望这会有所帮助。


0
投票

使用此脚本:

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