我正在构建一个宏代码,它将从工作表中一系列单元格中的某个单元格中查找文本字符串,并从同一行返回数据并打印出另一个工作表中的所有匹配行。我正在使用数组公式在单元格中执行此操作,但事实证明它非常慢且架构不好。
假设我想在Sheet1中的sheet2中找到E2,在E2:F20的范围内,并从sheet3中的同一行打印出A到D的数据。
现在根据加里学生的答案,我想出了类似的东西,然而,它仍然不起作用。
Sub Macro1()
Dim r1 As Range, r2 As Range, r3 As Range
Dim rw1 As Long
Set r2 = Sheets("Committees").Range("A2")
Set r1 = Sheets("Database").Range("P2:CO5000")
Set r3 = Sheets("Reports").Range("F2")
Set rw1 = r1.Find(What:=r2.Value, After:=r1(1)).Row
If Not rw1 Is Nothing Then
Do Until rw1 Is Nothing
Sheets("Database").Range("A" & rw1 & ":O" & rw1).Copy r3
Set rw1 = .FindNext(rw1)
Loop
End If
Set rw1 = Nothing
Next
End Sub
我该怎么做?提前谢谢。
答案 0 :(得分:0)
以下是一个简单的示例:
Sub FindAndMove()
Dim r1 As Range, r2 As Range, r3 As Range
Dim rw1 As Long
Set r2 = Sheets("Sheet2").Range("A2")
Set r1 = Sheets("Sheet1").Range("E2:F20")
Set r3 = Sheets("Sheet3").Range("F2")
rw1 = r1.Find(What:=r2.Value, After:=r1(1)).Row
Sheets("Sheet1").Range("A" & rw1 & ":D" & rw1).Copy r3
End Sub
其中r2
包含要查找的数据。
其中r1
是要搜索的区域。
其中r3
是数据的目的地。