Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 工作表事件引发名为“类型不匹配错误”的异常_Vba - Fatal编程技术网

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