文章目录
在日常办公中,Excel的使用频率极高。今天,我们来分享一些实用的Excel技巧,特别是如何设置下拉选项的多选功能。📚
📋 WPS操作:在WPS中,进入“数据
”选项卡,选择“下拉列表
”,添加需要选择的内容,点击确定。然后进入“工具
”选项卡,选择“开发工具
”,点击VB剪辑器
或查看代码
。在右侧双击需要操作的表格,输入代码
后关闭页面即可。
📊 Office操作:在Office中,进入“数据
”选项卡,选择“数据验证
”,允许选择“序列
”,然后添加需要选择的内容,用逗号
隔开,点击确定。接着进入“开发工具
”选项卡,选择Visual Basic
,在右侧双击需要操作的表格,输入代码
后关闭页面即可。
通过这些简单的步骤,你可以轻松实现Excel下拉选项的多选功能,提高工作效率。🌟
VBA代码方式支持下拉框多选功能
使用VBA代码,你需要确保你的Excel文件是以启用宏的格式
保存的(如.xlsm
),并且用户的计算机上启用了宏
。
VBA宏代码:允许在数据验证列表中进行多项选择,并且可以重复选择相同
的项。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| Option Explicit
Sub Worksheet_Change(ByVal Target As Range) Dim mgDV As Range Dim oldVal As String Dim newVal As String If Target.Count > 1 Then GoTo exitHandler On Error Resume Next Set mgDV = Cells.SpecialCells(xlCellTypeAllValidation) On Error GoTo exitHandler If mgDV Is Nothing Then GoTo exitHandler If Intersect(Target, mgDV) Is Nothing Then Else Application.EnableEvents = False newVal = Target.Value Application.Undo oldVal = Target.Value Target.Value = newVal If oldVal = "" Then Else If newVal = "" Then Else Target.Value = oldVal & "," & newVal End If End If End If exitHandler: Application.EnableEvents = True End Sub
|
VBA宏代码:允许在数据验证列表中进行多项选择,并且不可以重复选择相同
的项。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo exitHandler Application.EnableEvents = False Dim mgDV As Range Dim oldVal As String, newVal As String Dim cellValue As String If Target.Count > 1 Then GoTo exitHandler On Error Resume Next Set mgDV = Cells.SpecialCells(xlCellTypeAllValidation) On Error GoTo exitHandler If mgDV Is Nothing Then GoTo exitHandler If Not Intersect(Target, mgDV) Is Nothing Then newVal = Target.Value Application.Undo oldVal = Target.Value Target.Value = newVal If oldVal <> "" And newVal <> "" Then oldVal = Replace(Trim(oldVal), " ", "") newVal = Trim(newVal) If InStr(1, "," & oldVal & ",", "," & newVal & ",", vbTextCompare) = 0 Then Target.Value = oldVal & IIf(oldVal = "", "", ",") & newVal Else Target.Value = oldVal MsgBox "此选项已被选中,请选择其他选项。", vbInformation End If End If End If
exitHandler: Application.EnableEvents = True End Sub
|