例如,需要查找Excel工作表中包含“数学”的单元格,并返回该单元格所在位置。
目前遇到的问题是:用Cells.find('数学')可以找到第一个包含“数学”的单元格,但是经过检验,这个单元格不是我想要的,还需要继续查找其它包含“数学”的单元格,可这时再使用Cells.FindNext()得到的单元格还是原来查找到的。如何解决这个问题?

解决方案 »

  1.   

    for..for..Pos
    遍历行和列,自己判断
      

  2.   

    应该是可以的,估计是你用的方法不对。FindNext 方法继续执行用 Find 方法启动的搜索。查找下一个匹配相同条件的单元格并返回代表单元格的 Range 对象。不影响选定区域或当前单元格。语法expression.FindNext(After)expression 必选。该表达式返回 Range 对象。After Variant 类型,可选。指定一个单元格,查找将从该单元格之后开始。此单元格相应于从用户界面查找时的活动单元格位置。注意 After 必须是查找区域中的单个单元格。请记住查找是从该单元格之后开始的;直到本方法环绕到此单元格时,才检测其内容。如果未指定本参数,查找将从区域的左上角单元格之后开始。说明当查找到指定查找区域的末尾时,本方法将环绕至区域的开始继续搜索。发生环绕后,为停止查找,可保存第一次找到的单元格地址,然后测试下一个查找到的单元格地址是否与其相同。
      

  3.   


    谢谢,我的问题解决了,是我犯了个错误。
    Cells.FindNext()的After参数虽然说是可选,不过还是要赋值的。我之前是直接用Cells.FindNext(),没写参数,所以总是不能跳到下一个查找结果。