1、准备数据:需要准备好供选择的下拉菜单数据,在Sheet2中列出“爱好”“学习课程”等选项值,作为下拉菜单的数据源。
2、调出开发工具:打开“文件”选项卡,点击“更多”,在弹出的“Excel 选项”窗口中的“高级”分类下勾选“开发工具”复选框,点击“确定”以显示开发工具。
3、插入列表框控件:进入“开发工具”选项卡,点击“插入”按钮,在“表单控件”中选择“列表框(ActiveX 控件)”,然后在表格中合适的单元格位置绘制列表框控件,并调整大小和位置至合适的范围。
4、设置列表框属性:绘制好列表框控件后,右键点击控件,选择“编辑”,在弹出的属性窗口中进行设置,在“ListFillRange”属性中输入数据源范围,如Sheet2!$A$2:$A$10
(假设Sheet2中的A列第2到10行是爱好的选项);将“MultiSelect”属性设置为fmMultiSelectMulti
,允许进行多项选择;如果不想显示控件的滚动条,可以将“ScrollBars”属性设置为fmScrollBarsNone
。
5、编写代码实现多选功能:进入VBA编辑器,为每个列表框控件编写相应的代码来实现多选功能,对于第一个列表框控件ListBox1,可以编写以下代码:
- 当列表框内容发生变化时,记录所选项目并将其显示在单元格中:
Private Sub ListBox1_Change() If Reload Then Exit Sub '加载ListBox1 Dim i As Integer Dim t As String t = "" For i = 0 To ListBox1.ListCount - 1 If ListBox1.Selected(i) = True Then t = t & "," & ListBox1.List(i) End If Next ActiveCell = Mid(t, 2) End Sub
6、设置工作表选择更改事件:在VBA编辑器中,还需要为工作表编写代码,以便根据活动单元格的位置来显示相应的列表框控件,并屏蔽非当前活动单元格对应的列表框的Change事件。
Private ReLoad As Boolean Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Row > 1 Then Dim i As Integer Dim t As String t = ActiveCell.Value ReLoad = True '如果是根据单元格的值修改列表框,则暂时屏蔽listbox的change事件。 For i = 0 To ListBox1.ListCount - 1 '根据活动单元格内容修改列表框中被选中的内容 If InStr(t, ListBox1.List(i)) Then ListBox1.Selected(i) = True Else ListBox1.Selected(i) = False End If Next ReLoad = False ListBox1.Top = ActiveCell.Top + ActiveCell.Height '以下语句根据活动单元格位置显示列表框 ListBox1.Left = ActiveCell.Left ListBox1.Width = ActiveCell.Width ListBox1.Visible = True ListBox2.Visible = False '隐藏其他列表框 End If End Sub
通过以上步骤,就可以在 Excel 中创建具有多选功能的下拉菜单了。
本文来自作者[水绿]投稿,不代表刢刢七立场,如若转载,请注明出处:https://007bld.cn/baike/202501-45874.html
评论列表(4条)
我是刢刢七的签约作者“水绿”!
希望本篇文章《excel下拉菜单 EXCEL制作下拉菜单多选》能对你有所帮助!
本站[刢刢七]内容主要涵盖:本公司专业开发 破解定制各类游戏辅助插件,一对一指导包有效果
本文概览:1、准备数据:需要准备好供选择的下拉菜单数据,在Sheet2中列出“爱好”“学习课程”等选项值,作为下拉菜单的数据源,2、调出开发工具:打开“文件”选项卡,点击“更多”,在弹出...