每当我运行此命令时,它就会向我显示类型不匹配错误(在If Target.Value = "CustomChoice"
中)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value = "CustomChoice" Then
Range("P12").Value = "Enter Dates"
Range("P13").Interior.Color = vbGreen
Range("R13").Interior.Color = vbGreen
Else
Range("P12:R13").Clear
Range("Q10").Select
End If
End Sub
答案 0 :(得分:0)
发生这种情况是因为此事件在Range("P12:R13").Clear
行中再次触发。但是,当此行激活时,Target.Address=P12:R13
。如果范围超过1个单元格,则.value
属性将无法像您一样使用。
因此,您需要修改代码以在执行过程中更改工作表时避免再次触发此事件。试试这个:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False 'deactivate events
If Target.Value = "CustomChoice" Then
Range("P12").Value = "Enter Dates"
Range("P13").Interior.Color = vbGreen
Range("R13").Interior.Color = vbGreen
Else
Range("P12:R13").Clear
Range("Q10").Select
End If
Application.EnableEvents = True 'activate events
End Sub