Range.Find有时会抛出运行时错误91 ...

时间:2018-05-15 14:42:24

标签: excel vba excel-vba

我正在使用以下代码查找不同工作簿中给定字符串的位置(特定行):

lonBU = wsTrgt.Range("A:A").Find(What:=strBU, After:=Cells(2, 1), LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=True, SearchFormat:=False).Row
lonNexBU = wsTrgt.Range(Cells(lonBU, 1)).End(xlDown).Row - 1

此代码不起作用,我得到一个运行时错误91.但是,如果我手动设置'lonBU'和'lonNexBU'并继续执行我的代码,以下.Find函数完全正常工作:

lonObj = wsTrgt.Range("B" & lonBU, "B" & lonNexBU).Find(What:=strObj, After:=Cells(lonBU, 2), LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=True, SearchFormat:=False).Row
lonNexObj = wsTrgt.Range(Cells(lonObj, 2)).End(xlDown).Row - 1

我无法弄清楚差异是什么,我的所有对象和变量都是 正确初始化和分配(显然我认为,因为第二个代码有效)。

Set wsTrgt = wsHistorie
strBU = wsOrig.Cells(9, 1).Value

0 个答案:

没有答案