我已经使用一些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
当我尝试删除某个项目时,验证就会生效,并说我无法删除该项目