现在我意识到过去已经提出并回答了很多关于此错误的问题,但这种情况稍微有些危险,我无法弄清楚是什么导致了这个问题。
我已经编写了一些代码,可以在excel文件中搜索关键字,然后返回有关它找到关键字的位置的信息。代码适用于我输入的大多数关键字,但有一些在我运行宏时产生91错误消息。如果有人能弄清楚为什么那会很棒!
代码是:
$sequence = explode('.', $matches[2]);
循环错误发生在strFirstAddress<> rFound.Address行
答案 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使用),因此如果省略,则永远不能依赖于将使用的值它们。