乐于分享
好东西不私藏

Excel中有无项选择对应表格显示与隐藏设置

Excel中有无项选择对应表格显示与隐藏设置

    首先表达设计意图:工作表格中需要用到相应的表格,但是限于部分情
形,那么如何设置简洁方便。
   第一步:设置情形选项,即有无情形设置。
  • 打开 Excel,先规划基础布局:
    • 选中要放下拉选项的单元格C2(后续所有公式都对应这个单元格,可自行修改位置)
  • 点击顶部菜单栏【数据】选项卡,找到【数据验证】(旧版 Excel 叫「数据有效性」)
  • 弹出窗口中,按以下设置:
    • 【允许】下拉选择序列
    • 【来源】输入:有,无(必须是英文逗号分隔)
    • 勾选【提供下拉箭头】,点击【确定】此时C2单元格就有了 “有 / 无” 的下拉选择功能。
   第二步:制作要控制显示 / 隐藏的明细表格
  第三步:设置条件格式,实现 “选无消失、选有显示”    
  • 选中你要控制的整个明细表格区域,也就是 **A4:D10**
  • 点击顶部【开始】选项卡,找到【条件格式】→ 点击【新建规则】
  • 弹出窗口中,选择最底部的 **【使用公式确定要设置格式的单元格】**
  • 在【为符合此公式的值设置格式】输入框中,输入公式:
   =$C$2=”无”
  • 关键提醒:$C$2是你的下拉框单元格,必须加$绝对引用,否则格式会错位。
    点击【格式】按钮,按以下设置 “消失” 效果:
    • 【字体】选项卡:字体颜色选择白色(和 Excel 默认背景一致)
    • 【边框】选项卡:点击【无】,取消所有边框
    • 【填充】选项卡:背景色选择白色
    • 全部设置完点击【确定】,回到规则窗口再点击【确定】
防错设置:
  1. 选中明细表格区域A4:D10,右键→【设置单元格格式】→【保护】,勾选【锁定】,点击确定
  2. 点击顶部【审阅】选项卡→【保护工作表】,可设置密码(也可留空),仅勾选【选定未锁定的单元格】,点击确定此时选 “无” 时,表格不仅看不见,还无法编辑,效果更逼真。
设置结果展示:
  可以发现选择无时,表格的工作区域也隐藏了,下面将简短介绍这么设置
的方法。

VBA 自动联动(推荐,最彻底)

效果:C1 选 “无”→图框消失 + 对应单元格区域整行 / 整列隐藏;选 “有”→全部恢复

要隐藏的单元格区域:比如明细表格在 A3:D7(对应行:3–7 行)。

粘贴 VBA 代码

  1. 右键工作表标签(如 Sheet1)→【查看代码】(Alt+F11)。
  2. 把下面代码完整粘贴到右侧代码窗口:
Private Sub Worksheet_Change(ByVal Target As Range)    
 Dim 触发单元格 As Range    
 Dim 隐藏区域 As Range    
 Dim 图框名称 As String        
  ‘ 👇 这里改成你自己的参数     
Set 触发单元格 = Me.Range(“C1”)       ‘ 下拉框位置   
  Set 隐藏区域 = Me.Rows(“3:7”)         ‘ 要隐藏的表格行(A3:D7 对应 3–7 行)     图框名称 = “Rectangle 1”               ‘ 你的图框名称(改这里!)      
    ‘ 只在修改 C1 时触发   
  If Not Intersect(Target, 触发单元格) Is Nothing Then       
  ‘ 1. 隐藏/显示 单元格区域(整行)       
  隐藏区域.Hidden = (触发单元格.Value = “无”)             
     ‘ 2. 隐藏/显示 图框        
 On Error Resume Next ‘ 图框不存在时不报错    
     Me.Shapes(图框名称).Visible = (触发单元格.Value = “有”)      
   On Error GoTo 0    
 End If 
End Sub
  1. 关闭 VBA 编辑器,回到 Excel。

3)保存与启用(必做)

  • 文件 → 另存为 → 类型选:Excel 启用宏的工作簿(*.xlsm)(不能存 .xlsx)。
  • 下次打开时,点顶部「启用内容」。

4)测试

  • C1 选「无」:3–7 行消失 + 图框消失。
  • C1 选「有」:全部恢复。