VBA使用find lookat查找行出现个怪异的问题求解

VBA使用find lookat查找行出现个怪异的问题,如图,查找A直接跳过row1,显示x值为2,但将A更改为M,就正常了,怎么回事?

第1个回答  2014-05-29
Excel的搜索是从当前光标所在位置之后开始的。
而用Find方法,是从它After参数指定的单元格之后开始的。
如果找不到,再回到最开始搜索。
你最开始用A的话,因为先向后。然后找到第2行的A,如果你后面没有A的话,
那它才会找到A1单元格中的A。
而你第二次用M就是这个道理。
从逻辑上来讲,如果你不需要特别在意顺序的话,这个顺序应该不会对你要处理的结果造成影响。
因为你可以用findnext逐个找到所有结果。追问

明白,我的目的是找到查找值"A"在第一列第一次出现的行row(),然后返回对应第二列的向下连续三个单元格值的组成的数组。因为我要找到第一次出现的行,这样岂不是有局限性,能不能避免?通过循环式可以解决,我的初衷是不适用循环。
请问,通过设置find函数的参数能不能解决跳过[a1],直接从[a2]开始?谢谢~

追答

可能有点变态

按照上面说的原理,你可以加一个after:=range("a50000")也就是让他从你有数据到后面开始找,它会因为找不到而回到最前面开始找。这个方法可能有点变态,不过应该能解决你到问题了*^_^*

本回答被提问者采纳
相似回答