我有以下代码
Dim qt As QueryTable
For Each qt In ActiveSheet.QueryTables
If qt.Sql = SQLSTRING Then Exit For
Next qt
If qt Is Nothing Or qt.Sql <> SQLSTRING Then
DoStuff
End If
我有一个问题,因为我可以看到'qt is nothing'正在评估为true,但在同一行上,我得到'91:对象变量或With block变量未设置'错误。这不是问题,因为我可以很容易地发现错误,但是我很惊讶,因为我认为如果'或'的第一个条款评估为真,它甚至不应该尝试评估第二个条款......这是不是我可以依赖的东西吗?
答案 0 :(得分:0)
VBA 不是那么聪明,请使用:
If qt Is Nothing Then
DoStuff
Else
If qt.Sql <> SQLSTRING Then
DoStuff
End If
End If