美文网首页
excel下拉框多选

excel下拉框多选

作者: Novice_ | 来源:发表于2020-11-16 14:16 被阅读0次

1. 鼠标右击下面的工作表(如sheet1)。选择“查看代码”,就可打开VBA编辑界面

2. 复制下面代码到VBA编辑界面,并保存即可

这样,我们的下拉菜单表就可以实现多选。

注意:

    a.excel已经启用宏

    b.excel的后缀名是.xlsm,是属于启用宏的excel表格

下拉框多选,并且再次选择就删除已存在项的功能

Option Explicit

Sub Worksheet_Change(ByVal Target As Range)

'让数据有效性选择 可以多选,重复选

Dim rngDV As Range

Dim oldVal As String

Dim tVal As String

Dim newVal As String

If Target.Count > 1 Then GoTo exitHandler

On Error Resume Next

Set rngDV = Cells.SpecialCells(xlCellTypeAllValidation)

On Error GoTo exitHandler

If rngDV Is Nothing Then GoTo exitHandler

If Intersect(Target, rngDV) Is Nothing Then

'do nothing

Else

Application.EnableEvents = False

newVal = Target.Value

Application.Undo

oldVal = Target.Value

Target.Value = newVal

tVal = ""

If oldVal = "" Then

Else

    If newVal = "" Then

    Else

        If InStr(1, "," & oldVal & ",", "," & newVal & ",") <> 0 Then '已存在

            tVal = Replace(Replace(oldVal & ",", newVal & ",", ""), ",,", ",")

            If InStr(Len(tVal), tVal, ",") <> 0 Then '判断最后一位是否逗号,是则不要最后一位

                tVal = Left(tVal, Len(tVal) - 1)

            End If

            Target.Value = tVal

        Else

            Target.Value = oldVal & "," & newVal

        End If

    End If

End If

End If

exitHandler:

Application.EnableEvents = True

End Sub

相关文章

网友评论

      本文标题:excel下拉框多选

      本文链接:https://www.haomeiwen.com/subject/fvaabktx.html