我一直在试图弄清楚如何处理这个问题,但基本上我想要一种方法来打印出 B 列中的值给定与 A 列匹配的特定值。例如:
Column A Column B
1 ABC
2 DEF
3 GHI
1 JKL
Run Code Online (Sandbox Code Playgroud)
我想在使用 find/findnext 或其他任何东西后打印出这个字符串:
ABC JKL
Run Code Online (Sandbox Code Playgroud)
我尝试使用
Set cellFound = ActiveWorkbook.Worksheets("sheet1").Range("F1:F1000000").Find("1")
string = cellFound.Offset(0, 1).value
Run Code Online (Sandbox Code Playgroud)
我有一个循环来循环尽可能多的时间来处理所有行。但是随着 find 它不断返回相同的第一个字符串(“ABC”)并且该字符串最终是 ABC ABC 而不是 ABC JKL
我尝试使用 FindNext 而不是 find,但我得到的是 1004 错误。所以我不确定我在哪里做错了。任何人有任何想法?
如果在上一个Find之后开始每个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
Run Code Online (Sandbox Code Playgroud)

您需要调用Find一次,然后依次调用FindNext
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
Run Code Online (Sandbox Code Playgroud)
参考:
| 归档时间: |
|
| 查看次数: |
51018 次 |
| 最近记录: |