Excel VBA在列中搜索值并将行复制到所有匹配值

时间:2015-08-21 10:40:49

标签: excel vba excel-vba copy

它应该做的是比较G列中的名称,在E列中找到该名称,如果匹配,则将全部复制到新工作表。现在,代码搜索名为Mail box的值,每次在E列的范围内找到它时,它会将整行复制到新的sheet2。

我能够转换代码,而不是搜索邮箱,它在单元格G1中搜索一个值,但我需要代码再次对G2,G3,G4行中的值进行多次操作, G5 ... G20。

Sub SearchForString()

   Dim LSearchRow As Integer
   Dim LCopyToRow As Integer

   On Error GoTo Err_Execute

   'Start search in row 4
   LSearchRow = 4

   'Start copying data to row 2 in Sheet2 (row counter variable)
   LCopyToRow = 2

   While Len(Range("A" & CStr(LSearchRow)).Value) > 0

      'If value in column E = "Mail Box", copy entire row to Sheet2
      If Range("E" & CStr(LSearchRow)).Value = "Mail Box" Then

         'Select row in Sheet1 to copy
         Rows(CStr(LSearchRow) & ":" & CStr(LSearchRow)).Select
         Selection.Copy

         'Paste row into Sheet2 in next row
         Sheets("Sheet2").Select
         Rows(CStr(LCopyToRow) & ":" & CStr(LCopyToRow)).Select
         ActiveSheet.Paste

         'Move counter to next row
         LCopyToRow = LCopyToRow + 1

         'Go back to Sheet1 to continue searching
         Sheets("Sheet1").Select

      End If

      LSearchRow = LSearchRow + 1

   Wend

   'Position on cell A3
   Application.CutCopyMode = False
   Range("A3").Select

   MsgBox "All matching data has been copied."

   Exit Sub

Err_Execute:
   MsgBox "An error occurred."

End Sub

0 个答案:

没有答案