首先表达设计意图:工作表格中需要用到相应的表格,但是限于部分情- 选中要放下拉选项的单元格
C2(后续所有公式都对应这个单元格,可自行修改位置)
- 点击顶部菜单栏【数据】选项卡,找到【数据验证】(旧版 Excel 叫「数据有效性」)
- 勾选【提供下拉箭头】,点击【确定】此时
C2单元格就有了 “有 / 无” 的下拉选择功能。
第三步:设置条件格式,实现 “选无消失、选有显示” - 选中你要控制的整个明细表格区域,也就是 **
A4:D10** - 点击顶部【开始】选项卡,找到【条件格式】→ 点击【新建规则】
- 弹出窗口中,选择最底部的 **【使用公式确定要设置格式的单元格】**
- 在【为符合此公式的值设置格式】输入框中,输入公式:
- 关键提醒:
$C$2是你的下拉框单元格,必须加$做绝对引用,否则格式会错位。 - 【字体】选项卡:字体颜色选择白色(和 Excel 默认背景一致)
- 全部设置完点击【确定】,回到规则窗口再点击【确定】
- 选中明细表格区域
A4:D10,右键→【设置单元格格式】→【保护】,勾选【锁定】,点击确定 - 点击顶部【审阅】选项卡→【保护工作表】,可设置密码(也可留空),仅勾选【选定未锁定的单元格】,点击确定此时选 “无” 时,表格不仅看不见,还无法编辑,效果更逼真。
可以发现选择无时,表格的工作区域也隐藏了,下面将简短介绍这么设置VBA 自动联动(推荐,最彻底)
效果:C1 选 “无”→图框消失 + 对应单元格区域整行 / 整列隐藏;选 “有”→全部恢复
要隐藏的单元格区域:比如明细表格在 A3:D7(对应行:3–7 行)。粘贴 VBA 代码
- 右键工作表标签(如 Sheet1)→【查看代码】(Alt+F11)。
Private Sub Worksheet_Change(ByVal Target As Range) Set 触发单元格 = Me.Range("C1") ' 下拉框位置 Set 隐藏区域 = Me.Rows("3:7") ' 要隐藏的表格行(A3:D7 对应 3–7 行) 图框名称 = "Rectangle 1" ' 你的图框名称(改这里!) If Not Intersect(Target, 触发单元格) Is Nothing Then 隐藏区域.Hidden = (触发单元格.Value = "无") On Error Resume Next ' 图框不存在时不报错 Me.Shapes(图框名称).Visible = (触发单元格.Value = "有")
3)保存与启用(必做)
- 文件 → 另存为 → 类型选:Excel 启用宏的工作簿(*.xlsm)(不能存 .xlsx)。
4)测试