Excel Select案例中的类型不匹配与子类型错误的变体
下面代码中指示的范围包含VLOOKUP公式。该代码用于在VLOOKUP返回N/a时通知用户 但是,我在下面的Case CVErrxlErrNA行中得到了一个类型不匹配错误。为什么?我怎样才能解决这个问题Excel Select案例中的类型不匹配与子类型错误的变体,excel,vba,Excel,Vba,下面代码中指示的范围包含VLOOKUP公式。该代码用于在VLOOKUP返回N/a时通知用户 但是,我在下面的Case CVErrxlErrNA行中得到了一个类型不匹配错误。为什么?我怎样才能解决这个问题 Private Sub Worksheet_Calculate() Dim c As Range For Each c In Range("N7:N13,N30:N36,N53:N59,N85:N91,N108:N114,N137:N137") Select Case [c]
Private Sub Worksheet_Calculate()
Dim c As Range
For Each c In Range("N7:N13,N30:N36,N53:N59,N85:N91,N108:N114,N137:N137")
Select Case [c]
Case CVErr(xlErrNA)
MsgBox "hello"
End Select
Next c
End Sub
显然,CVErr输出的子类型Error的变体不喜欢与任何其他类型进行比较。发生这种情况时,将抛出类型不匹配。只要c不包含错误代码,就会出现此错误 因此,您必须将Select Case语句分为两部分:一部分用于处理错误代码,另一部分用于处理所有其他内容。这对我很有用:
Dim c As Range
For Each c In Range("N7:N13,N30:N36,N53:N59,N85:N91,N108:N114,N137:N137")
If IsError(c.Value) Then
'Deal with error codes
Select Case c.Value
Case CVErr(xlErrNA)
MsgBox "#N/A"
Case CVErr(xlErrDiv0)
MsgBox "Divide by zero."
'etc.
End Select
Else
'Deal with everything else
Select Case c.Value
Case 1
MsgBox "1"
Case "a"
MsgBox "a"
'etc.
End Select
End If
Next c
这应该做什么?可以为CVErr和xlErrNA变量提供代码?给定的范围具有Vlookup公式,该公式从另一张表中得出结果,我希望用户添加产品,如果Vlookup给定N/A错误为什么使用[方括号]?@DavidZemens,感谢您提供信息。我再次在这里学到了一些新东西,因此: