VBA:需要确定FIND方法的结果是什么或者“”(空)

我有这个

Set rngFound = Selection.Find(What:=Trim(prirustek.Cells(i, 1).Value), LookIn:=xlValues, LookAt:=xlWhole) 

并需要做这样的事情:

 If rngFound Is Nothing Or rngFound = "" Then ... 

但是这个代码停止在“对象variables或块variables未设置(错误91)”。 我觉得这个问题在rng里找不到,但是我怎么能做到

 rngFound = "" 

在IF语句?

试试这个If IIf(rng Is Nothing, "", rng) = "" Then

它首先处理完全nothing情况。 这有点像Access中的Nz()

尝试If rngFound Is Nothing Or rngFound.Value = "" Then

怎么样:

 Private Function isRangeEmptyOrNothing(r As Range) As Boolean If r Is Nothing Then isRangeEmptyOrNothing = True ElseIf IsEmpty(r) Then isRangeEmptyOrNothing = True ElseIf r = "" Then 'Not sure if this is redundant with IsEmpty isRangeEmptyOrNothing = True End If End Function 

然后在你的主代码中:

 If isRangeEmptyOrNothing(rngFound) Then 

您可以尝试以下方法:

 If rngFound = Empty Then ... 

要么

 If isNull(rngFound) = true Then ...