Vba 工作表事件引发名为“类型不匹配错误”的异常
每当我运行它时,它都会显示类型不匹配错误(在Vba 工作表事件引发名为“类型不匹配错误”的异常,vba,Vba,每当我运行它时,它都会显示类型不匹配错误(在If Target.Value=“CustomChoice”中) 发生这种情况是因为此事件在行范围(“P12:R13”)内再次激发。清除。但是当这行激活时,Target.Address=P12:R13。如果范围超过1个单元格,则不能像现在这样使用.value属性 因此,您需要修改代码,以避免在执行期间工作表发生更改时再次触发此事件。试试这个: Private Sub Worksheet_Change(ByVal Target As Range) Ap
If Target.Value=“CustomChoice”
中)
发生这种情况是因为此事件在
行范围(“P12:R13”)内再次激发。清除。但是当这行激活时,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
哪些变量的类型不匹配?At If condition可能值得添加类似于If Target.Address=“$A$1”
的内容,否则输入什么单元格CustomChoice并不重要@srivardhankandike如果有效,您是否也可以将此勾选为已接受的答案?这样可以避免人们再次寻找答案。是的,但在选择CustomChoice的下拉列表中,则应取消该操作perform@DarrenBartup Cook但是现在我遇到了新的错误,就像这样工作得很好,但是当我在单元格中输入数据时没有给我看任何东西
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