查找文本字符串并使用VBA从同一行返回数据

时间:2016-05-17 18:50:38

标签: excel vba excel-vba

我正在构建一个宏代码,它将从工作表中一系列单元格中的某个单元格中查找文本字符串,并从同一行返回数据并打印出另一个工作表中的所有匹配行。我正在使用数组公式在单元格中执行此操作,但事实证明它非常慢且架构不好。

假设我想在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

我该怎么做?提前谢谢。

1 个答案:

答案 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是数据的目的地。