异常 - vba错误:对象变量或未设置块变量

时间:2016-08-31 14:36:44

标签: excel vba excel-vba

现在我意识到过去已经提出并回答了很多关于此错误的问题,但这种情况稍微有些危险,我无法弄清楚是什么导致了这个问题。

我已经编写了一些代码,可以在excel文件中搜索关键字,然后返回有关它找到关键字的位置的信息。代码适用于我输入的大多数关键字,但有一些在我运行宏时产生91错误消息。如果有人能弄清楚为什么那会很棒!

代码是:

$sequence = explode('.', $matches[2]);

循环错误发生在strFirstAddress<> rFound.Address行

1 个答案:

答案 0 :(得分:4)

即使找不到任何内容,您的代码也会进入Do循环。

尝试类似:

Set rFound = wks.UsedRange.Find(what:=strSearch, lookat:=xlWhole, lookin:=xlValues) 
If Not rFound Is Nothing Then 
    strFirstAddress = rFound.Address 
    Do
        lRow = lRow + 1
        .Cells(lRow, 1) = wbk.Name
        .Cells(lRow, 2) = wks.Name
        .Cells(lRow, 3) = rFound.Value
        Set rFound = wks.Cells.FindNext(After:=rFound) 
    Loop While strFirstAddress <> rFound.Address 
End If

Find()指定其他参数是个好主意,因为它们的值将在使用之间保持不变(即使是通过Excel UI使用),因此如果省略,则永远不能依赖于将使用的值它们。