Я использовал некоторый код 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
Когда я пытаюсь удалить элемент, начинается проверка и говорит, что я не могу удалить элемент