Select Case与子typesvariables的types不匹配
下面代码中指出的范围包含一个VLOOKUP
公式。 该代码旨在通知用户VLOOKUP
是否VLOOKUP
#N/A
但是,在下面的Case CVErr(xlErrNA)
一行中,我得到一个types不匹配错误。 为什么? 我怎样才能解决这个问题?
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
显然,子types错误的变体(和CVErr
输出CVErr
)不喜欢与任何其他types进行比较。 发生这种情况时,会引发types不匹配。 只要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