Excel VBA查找和查找

我一直在试图弄清楚如何处理这个问题,但基本上我想要一个方法来打印列B中的值给定一个特定的值匹配列A.所以例如:

Column A Column B 1 ABC 2 DEF 3 GHI 1 JKL 

我想在使用find / findnext或其他方法之后打印出这个string:

 ABC JKL 

我试过使用

 Set cellFound = ActiveWorkbook.Worksheets("sheet1").Range("F1:F1000000").Find("1") string = cellFound.Offset(0, 1).value 

我有一个循环来循环所需的所有行照顾的时间。 但随着发现它不断返回我相同的第一个string(“ABC”)和string结束了ABC ABC而不是ABC JKL

我试图使用FindNext而不是查找,但我得到的是一个1004错误。 所以我不太确定我做错了什么。 任何人有任何想法?

如果您在前一个查找之后启动每个Find ,则不需要FindNext

 Sub qwerty() Dim rFirst As Range, r As Range Dim A As Range Set A = Range("A:A") Do If rFirst Is Nothing Then Set rFirst = A.Find(What:=1, After:=A(1)) Set r = rFirst Else Set r = A.Find(What:=1, After:=r) If r.Address = rFirst.Address Then Exit Do End If MyString = MyString & " " & r.Offset(0, 1) Loop MsgBox MyString End Sub 

在这里输入图像描述

您需要调用一次Find ,然后连续Find一个

 Dim rng As Excel.Range Set rng = ActiveWorkbook.Worksheets("sheet1").Range("F1:F1000000") Set cellFound = rng.Find("1") Do While Not cellFound Is Nothing Set cellFound = rng.FindNext Loop 

参考:

  • 查找方法
  • FindNext方法