Удаление отдельных элементов из раскрывающегося списка Excel, в котором используется VBA для нескольких вариантов выбора. - PullRequest
0 голосов
/ 11 июля 2019

Я использовал некоторый код VBA, чтобы можно было выбрать несколько вариантов для каждой продажи, используя раскрывающийся список. Код также запрещает выбирать ту же опцию, которая прекрасно работает, пока вы не сделаете ошибку в выделении и не захотите удалить все ваши выборы, потому что я не могу выделить и удалить выбор, сделанный по ошибке, в основном, отредактируйте его после выбора.

Я не очень разбираюсь в VBA, поэтому не уверен, что делать - приведенный ниже код работает отлично, мне пришлось все отступить, так что, надеюсь, он по-прежнему читается правильно

    Private Sub Worksheet_Change(ByVal Target As Range)

    Dim Oldvalue As String
    Dim Newvalue As String
    Application.EnableEvents = True
    On Error GoTo Exitsub
    If Target.Address = "$C$3" Or Target.Address = "$C$4" Or Target.Address = "$C$5" Or Target.Address = "$C$6" Or Target.Address = "$C$7" Or Target.Address = "$C$8" Or Target.Address = "$D$3" Or Target.Address = "$D$4" Or Target.Address = "$D$5" Or Target.Address = "$D$6" Or Target.Address = "$D$7" Or Target.Address = "$D$8" Or Target.Address = "$E$3" Or Target.Address = "$E$4" Or Target.Address = "$E$5" Or Target.Address = "$E$6" Or Target.Address = "$E$7" Or Target.Address = "$E$8" Or Target.Address = "$F$3" Or Target.Address = "$F$4" Or Target.Address = "$F$5" Or Target.Address = "$F$6" Or Target.Address = "$F$7" Or Target.Address = "$F$8" 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 & vbNewLine & vbNewLine & Newvalue
          Else:
            Target.Value = Oldvalue
          End If
        End If
      End If
    End If
    Application.EnableEvents = True
    Exitsub:
    Application.EnableEvents = True
    End Sub

Когда я пытаюсь удалить элемент, начинается проверка и говорит, что я не могу удалить элемент

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...