首页 > 解决方案 > 我的查找功能,从第二个实例开始,我做错了什么?

问题描述

我正在尝试搜索一个数组,然后对找到的行进行调整。查找从找到的第二个实例开始,我如何将其设为第一个实例?

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

标签: excelvba

解决方案


我想你需要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

推荐阅读