☰
【Microsoft Office Excel 2021表格实现下拉复选框多选】
2026/10/17 1:37:19 网站建设 项目流程

Microsoft Office Excel 2021表格实现下拉复选框多选

文章目录

  • 1功能实现必备条件
  • 2准备数据源
  • 3开启“开发工具”
  • 4具体实现
    • 4.1插入列表框控件
    • 4.2设置列表框控件属性
    • 4.3编辑VBA代码实现功能
    • 4.4调试运行
    • 4.5保存文件

1功能实现必备条件

  • Windows 10 环境
  • Microsoft OfficeExcel 2021
  • Microsoft Office Excel 2021已提前安装VBA支持库

2准备数据源

打开要实现的excel表格,将选项数据放到sheet2

3开启“开发工具”

开启“开发工具”步骤:文件->选项->自定义功能区->开发工具->“确定”保存



完成以上准备工作

4具体实现

4.1插入列表框控件

选中单元格 --> 开发工具 --> 插入 --> ActiveX控件 --> 列表框(ActiveX控件)
注意:点击列表框(ActiveX控件)后需要点击一下单元格后才会显示出一个ActiveX控件。

4.2设置列表框控件属性

选中列表框控件 --> 开发工具 --> 设计模式 --> 属性

  • ListFillRange:Sheet2!A1:A10
    • 设置数据范围:数据源在Sheet2里面的A1-A10。(需要手动输入数据范围Sheet2!A1:A10)
  • ListStyle:1 - fmListStyleOption
    • 设置样式
  • MultiSelect:1 - fmMultiSelectMulti
    • 设置多选

4.3编辑VBA代码实现功能

开发工具 --> 设计模式 --> 查看代码
注意:Excel需要提前安装VBA支持库;

VBA代码内容:

注意:
图内“13”是第13列的内容实现下拉复选框功能,这个要根据场景需要进行调整。
图内“1”含义是取消首行实现下拉复选框功能。通常首行是标题,这个要根据场景需要进行调整。

Private Sub ListBox1_Change()If Reload Then Exit Sub'加载ListBox1 For i = 0 To ListBox1.ListCount - 1 If ListBox1.Selected(i) = True Then t = t & "," & ListBox1.List(i) Next ActiveCell = Mid(t, 2) End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) With ListBox1 '第2列 且 单元格大于1,因为表头的字段不需要进行多选 If ActiveCell.Column=13And ActiveCell.Row>1Then t=ActiveCell.Value Reload=True'如果是根据单元格的值修改列表框,则暂时屏蔽listbox的change事件。 For i = 0 To .ListCount - 1 '根据活动单元格内容修改列表框中被选中的内容 If InStr(t, .List(i))Then .Selected(i)=True Else .Selected(i)=False End If Next Reload=False .Top=ActiveCell.Top + ActiveCell.Height '以下语句根据活动单元格位置显示列表框 .Left=ActiveCell.Left .Width=ActiveCell.Width .Visible=True Else .Visible=False End If End With End Sub

4.4调试运行

调试 --> 编译 VBAProject --> 点击运行VB代码 --> 回到下拉复选框区域进行功能验证

运行效果:

4.5保存文件

需要将已经实现下拉复选框功能的.xlsx文件另存为.xlsm文件,这样才能在后续使用时保证下拉复选框功能正常使用。
正常保存后的.xlsm文件在使用时需要使用Microsoft Office Excel打开并要开启宏功能,才能够正常使用下拉复选框功能。

保存文件时选择“保存类型”为:

(多个下拉复选框实现效果要在VBA里面做调整)

引用自:Excel 单元格下拉复选框(多选项)——VBA 学习

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询