MICROSOFT

EP02. “List Box 列表框控件”

首页 Microsoft 工具 Excel · VBA · ActiveX Controls · EP02
约 4 分钟· #EP02#Excel#ActiveX Controls
🔒 登录后可标记已读
  • 列表框(List Box)让使用者从预设的一批选项里挑一个
  • 讲怎么插入列表框、用 Workbook Open 事件自动帮它填好选项
  • 也讲怎么把选中的结果连结到某个单元格
  • 前置知识:EP01 插入 ActiveX 控件的基本流程

重点内容


适用版本

桌面版通用(Excel 365 / 2021 / 2019 等)。


插入列表框

  1. Developer 标签页 → Insert
  2. ActiveX Controls 分类选择 List Box
  3. 拖拽到工作表上(默认名字是 ListBox1,可以右键 Properties 改名)

用 Workbook Open 事件自动填选项

  1. 打开 VBA 编辑器,双击左侧 Project Explorer 里的 ThisWorkbook
  2. 上方两个下拉选单分别选 Workbook 和 Open
  3. 输入:
With Sheet1.ListBox1
    .AddItem "Paris"
    .AddItem "New York"
    .AddItem "London"
End With

这样每次打开这份工作簿,列表框都会自动填好这三个选项。

[截图:打开工作簿后,工作表上的列表框自动显示 Paris、New York、London 三个选项的样子]

📌 想清空列表可以用 ListBox1.Clear;如果选项来自某个单元格范围,也可以改用 ListFillRange 属性直接指定范围,不用一条条 AddItem。


连结到单元格

  1. Design Mode 开启状态下右键点击列表框 → Properties
  2. 把 LinkedCell 设成想要的单元格(例如 D3)
  3. 保存、关闭、重新打开文件

设置完成后,使用者在列表框里选了哪一项,D3 就会自动显示对应的结果。


学完你会

  • ✅ 用 AddItemListFillRange 帮列表框填选项
  • ✅ 用 Workbook Open 事件让选项在打开文件时自动填好
  • ✅ 用 LinkedCell 把选中结果连结到指定单元格

常见错误

  • 把填充选项的代码写在按钮里而不是 Workbook Open 事件里,每次打开文件都要手动点一次才有选项
  • 忘记 LinkedCell 要重新保存关闭再打开文件才会生效
  • 选项来源是固定范围却还在用一条条 AddItem 手打,应该改用 ListFillRange 更省事

Sources

Blog / Website:

  1. List Box