2011-10-07 81 views
0

有没有一种优雅的方式来写一个如果A或B或C那么X否则不做任何声明?例如。紧凑的错误检查

If WorksheetFunction.CountA(Range("J:J")) <> SymbolCount Then 
    MsgBox "Check column J in Estate worksheet for fill completion" 
End If 
If WorksheetFunction.CountA(Range("K:K")) <> SymbolCount Then 
    MsgBox "Check column K in Estate worksheet for fill completion" 
End If 

我能想到的最有创意的解决方案是增加的CountAs,看看它是否匹配符号计数* NumberOfTests,但是这将意味着放弃非特异性应答消息。

回答

1

这是一个尝试(如果我深知你的问题):

Sub test() 
Dim SymbolCount As Integer, i As Integer 
Dim aCols(2) As String 
aCols(0) = "J" 
aCols(1) = "K" 

SymbolCount = 0 
For i = 0 To UBound(aCols) - 1 
    If WorksheetFunction.CountA(Range(aCols(i) & ":" & aCols(i))) <> SymbolCount Then 
     MsgBox "Check column " & aCols(i) & " in Estate worksheet for fill completion" 
    End If 
Next i 
End Sub