重点内容
适用版本
桌面版通用(Excel 365 / 2021 / 2019 等)。
插入列表框
- Developer 标签页 → Insert
- ActiveX Controls 分类选择 List Box
- 拖拽到工作表上(默认名字是 ListBox1,可以右键 Properties 改名)
用 Workbook Open 事件自动填选项
- 打开 VBA 编辑器,双击左侧 Project Explorer 里的 ThisWorkbook
- 上方两个下拉选单分别选 Workbook 和 Open
- 输入:
With Sheet1.ListBox1
.AddItem "Paris"
.AddItem "New York"
.AddItem "London"
End With这样每次打开这份工作簿,列表框都会自动填好这三个选项。
打开工作簿后,工作表上的列表框自动显示 Paris、New York、London 三个选项的样子
📌 想清空列表可以用 ListBox1.Clear;如果选项来自某个单元格范围,也可以改用 ListFillRange 属性直接指定范围,不用一条条 AddItem。
连结到单元格
- Design Mode 开启状态下右键点击列表框 → Properties
- 把 LinkedCell 设成想要的单元格(例如 D3)
- 保存、关闭、重新打开文件
设置完成后,使用者在列表框里选了哪一项,D3 就会自动显示对应的结果。
学完你会
常见错误
- 把填充选项的代码写在按钮里而不是 Workbook Open 事件里,每次打开文件都要手动点一次才有选项
- 忘记 LinkedCell 要重新保存关闭再打开文件才会生效
- 选项来源是固定范围却还在用一条条 AddItem 手打,应该改用 ListFillRange 更省事
Sources
Blog / Website: