Как применить Visual Basic Multi-Select к столбцу? - PullRequest
0 голосов
/ 20 июня 2019

Я не знаком с программированием кодов Excel, но мне удалось найти один код для применения Multi-Select в списке DropDown без повторений.Тем не менее, это относится только к этой одной ячейке, поэтому мне нужно пройти через каждую ячейку, чтобы применить это правило к каждой отдельной ячейке.Я хотел бы применить это правило к колонке, если это возможно!

Private Sub Worksheet_Change(ByVal Target As Range)
    'Code by Sumit Bansal from https://trumpexcel.com
    ' To allow multiple selections in a Drop Down List in Excel (without repetition)
    Dim Oldvalue As String
    Dim Newvalue As String
    Application.EnableEvents = True
    On Error GoTo Exitsub

    If Target.Address = "$E$13" Then

        If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then
            GoTo Exitsub
        Else: If Target.Value = "" Then GoTo Exitsub Else

            Application.EnableEvents = False
            Newvalue = Target.Value
            Application.Undo
            Oldvalue = Target.Value

            If Oldvalue = "" Then
                Target.Value = Newvalue
            Else
                If InStr(1, Oldvalue, Newvalue) = 0 Then
                    Target.Value = Oldvalue & ", " & Newvalue
                Else:
                    Target.Value = Oldvalue
                End If
            End If

        End If

    End If
    Application.EnableEvents = True
    Exitsub:
    Application.EnableEvents = True
End Sub

1 Ответ

2 голосов
/ 20 июня 2019

Вместо проверки Target.Address вы хотите проверить Target.Column.

If Target.Column = 5 Then

Возможно, вы также захотите проверить, что Target это просто один столбец.Например, Range("E5:G5").Column все равно вернет 5.

. Вы можете сделать это с помощью:

If Target.Columns.Count = 1 Then

или вместе:

If Target.Columns.Count = 1 And Target.Column = 5 Then
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...