我的某个范围的Find函数始终从第二个实例开始,我在做什么错?

时间:2019-04-21 18:51:34

标签: excel vba

我试图搜索一个数组,然后对找到的行进行调整。查找从找到的第二个实例开始,如何使它成为第一个实例?

val = MySheet.Range("B8")
With MySheet.Range("MyList")
Set Loc = .Find(val, LookAt:=xlWhole, SearchOrder:=xlByRows)

Do
ListPos = Loc.Row
MyVal = MySheet.Cells(ListPos, 6).Value
MsgBox ListPos

Val = x MyList = {x,z,y,f,g,x,x}(我命名的1列范围)

MsgBox始终显示数组中第二个实例的行值

我尝试使用搜索顺序,并且尝试使用After:= 0,但没有帮助

我期望ListPos为1,而始终为6

1 个答案:

答案 0 :(得分:1)

我认为您需要下面的After:=示例。

Set foundMatch = .Find(What:=cellCriteria, After:=.Cells(1, 1), LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=True, SearchFormat:=False) 'finds a match