如何检查多个对象是否不是VBA Excel

时间:2016-11-02 13:04:23

标签: vba excel-vba excel

我正在尝试检查2个对象中的 not nothingness 并且无法检测到'找到正确的方法来写下来。

我正在努力尝试:

Dim NArange As Range, NAMERange As Range
Set NArange = Rows(DateRange.Row).Find("#N/A", LookIn:=xlValues, LookAt:=xlWhole)
Set NAMERange = Rows(DateRange.Row).Find("#NAME?", LookIn:=xlValues, LookAt:=xlWhole)


If (Not NArange Or Not NAMERange) Is Nothing Then
    debug.print "nothing"
End If

我该怎么写

If (Not NArange Or Not NAMERange) Is Nothing Then

条件?

谢谢!

2 个答案:

答案 0 :(得分:3)

您需要先对所有内容进行测试,然后结合这些比较的结果:

If NArange Is Nothing And NAMERange Is Nothing Then

如果您尝试将Is以外的运算符应用于对象,它将尝试使用默认属性(在本例中为Value)。因此,Not NArange相当于Not NArange.Value。如果NArangeNothing,您将收到运行时错误91 - “对象变量或未设置块变量”。

答案 1 :(得分:2)

你应该将这两个语句分开:

Dim NArange As Range, NAMERange As Range

Set NArange = ActiveSheet.Range("A1")
Set NAMERange = ActiveSheet.Range("A2")


If NArange Is Nothing Or NAMERange Is Nothing Then
    MsgBox ("nothing")
Else
    MsgBox ("something")
End If