Excel表格实现下拉复选框多选
文章目录
- 1准备数据源
- 2开启“开发工具”
- 3具体实现
- 3.1插入列表框控件
- 3.2设置列表框控件属性
- 3.3编辑VBA代码实现功能
- 3.4调试运行
1准备数据源
打开要实现的excel表格,将选项数据放到sheet2
2开启“开发工具”
开启“开发工具”步骤:文件->选项->自定义功能区->开发工具->“确定”保存
完成以上准备工作
3具体实现
3.1插入列表框控件
选中单元格->开发工具->插入->ActiveX控件->列表框(ActiveX控件)
3.2设置列表框控件属性
选中列表框控件->开发工具->设计模式->属性
3.3编辑VBA代码实现功能
开发工具->设计模式->查看代码
注意: Excel需要提前安装VBA支持库;
VBA代码:
Private Sub ListBox1_Change()If Reload Then Exit Sub '加载ListBox1For i = 0 To ListBox1.ListCount - 1If ListBox1.Selected(i) = True Then t = t & "," & ListBox1.List(i)NextActiveCell = Mid(t, 2)End SubPrivate Sub Worksheet_SelectionChange(ByVal Target As Range)With ListBox1'第 2 列 且 单元格大于 1,因为表头的字段不需要进行多选If ActiveCell.Column = 13 And ActiveCell.Row > 1 Thent = ActiveCell.ValueReload = True '如果是根据单元格的值修改列表框,则暂时屏蔽listbox的change事件。For i = 0 To .ListCount - 1 '根据活动单元格内容修改列表框中被选中的内容If InStr(t, .List(i)) Then.Selected(i) = TrueElse.Selected(i) = FalseEnd IfNextReload = False.Top = ActiveCell.Top + ActiveCell.Height '以下语句根据活动单元格位置显示列表框.Left = ActiveCell.Left.Width = ActiveCell.Width.Visible = TrueElse.Visible = FalseEnd IfEnd WithEnd Sub
3.4调试运行
调试->编译 VBAProject
运行效果:
保存文件时选择“保存类型”为:
(多个下拉复选框实现效果要在VBA里面做调整)
引用自:Excel 单元格下拉复选框(多选项)——VBA 学习