【VBA案例010】下拉多选

302 字
2 分钟
【VBA案例010】下拉多选

大家好!今天将为大家介绍在Excel中如何实现下拉多选功能,让数据输入更加灵活高效。

下拉多选功能不仅提高了数据输入的灵活性,还减少了输入错误的可能性,为我们的数据处理工作带来了更高的效率。

也许你见过使用表单控件的方式实现下拉多选,但是通过数据验证和VBA,我们同样能够轻松创建具有下拉多选功能的工作表。

以下是VBA代码,详细解析请看文末视频。

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngDV As Range
Dim oldVal As String
Dim newVal As String
Dim fenGeFu As String
If Target.CountLarge > 1 Then Exit Sub
fenGeFu = "," '规定用逗号分隔
On Error Resume Next
Set rngDV = Cells.SpecialCells(xlCellTypeAllValidation)
If rngDV Is Nothing Then Exit Sub
If Intersect(Target, rngDV) Is Nothing Then Exit Sub
Application.EnableEvents = False
newVal = Target.Value
Application.Undo
oldVal = Target.Value
Target.Value = newVal
If oldVal <> "" Then
If newVal <> "" Then
If InStr(fenGeFu & oldVal & fenGeFu, fenGeFu & newVal & fenGeFu) > 0 Then
If InStrRev(oldVal, newVal) + Len(newVal) - 1 = Len(oldVal) Then
Target.Value = Replace(oldVal, fenGeFu & newVal, "")
Else
Target.Value = Replace(oldVal, newVal & fenGeFu, "")
End If
Else
Target.Value = oldVal & fenGeFu & newVal
End If
End If
End If
Application.EnableEvents = True
End Sub

原始链接

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
【VBA案例010】下拉多选
https://fanrich.eu.org/posts/程技/vba/vba案列/vba案例010下拉多选/
作者
richfan
发布于
2023-10-23
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
richfan
Hello, I'm richfan.
公告
欢迎来到我的博客!这是一则示例公告。
音乐
封面

音乐

暂未播放

0:000:00
暂无歌词
分类
标签
站点统计
文章
779
分类
8
标签
138
总字数
3,267,679
运行时长
0
最后活动
0 天前
站点信息
构建平台
Cloudflare Pages
博客版本
Firefly v6.13.5
文章许可
CC BY-NC-SA 4.0

文章目录