美文网首页
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