在工作表之间复制和粘贴行

问题描述:

我想要实现的是根据特定条件将数据从WS1复制到WS3。在工作表之间复制和粘贴行

我有2个工作表:

WS1 = RAW DATA 
WS2 = ATLAS DATA 

的列中的两个有独特的标识符。我想要做的是创建WS3=Reconciliation。然后在WS2中查找WS1中的值。当找到匹配我想从WS1行(S)复制到WS3所有 我已经逆向工程一些代码,根据您的问题的描述与一个想出了下面

Sub CopyAndPaste() 
Dim x As String, CpyRng As Range 
Dim mFIND As Range, mFIRST As Range 

    With Sheets("RAW DATA") 
     Range("A:A").Select 
     On Error Resume Next 
End With 
With Sheets("ATLAS DATA") 
     Set mFIND = .Range("A:A").Find(x, LookIn:=xlValues, LookAt:=xlWhole) 
     If Not mFIND Is Nothing Then 
      Set CpyRng = mFIND 
      Set mFIRST = mFIND 

      Do 
       Set CpyRng = Union(CpyRng, mFIND) 
       Set mFIND = .Range("A:A").FindNext(mFIND) 
      Loop Until mFIND.Address = mFIRST.Address 

      CpyRng.EntireRow.Copy Sheets("Rec").Range("A" & Rows.Count).End(xlUp).Offset(1) 
     End If 
    End With 
End Sub 
+0

需要帮助使我的工作,我想我刚才说的话。如果我没有,我很抱歉。 – Werra2006 2013-03-21 12:17:57

;试试这个

Option Explicit 

Sub CopyAndPaste() 
Application.ScreenUpdating = False 

    Dim i As Long, j As Long, lastRow1 As Long, lastRow2 As Long, cnt As Long 
    Dim ws1 As Worksheet, ws2 As Worksheet, ws3 As Worksheet 
    Set ws1 = ActiveWorkbook.Sheets("RAW DATA") 
    Set ws2 = ActiveWorkbook.Sheets("ATLAS DATA") 
    Set ws3 = ActiveWorkbook.Sheets("Reconciliation") 

    lastRow1 = ws1.Range("A" & Rows.Count).End(xlUp).Row 
    lastRow2 = ws2.Range("A" & Rows.Count).End(xlUp).Row 
    cnt = 1 

    For i = 1 To lastRow1 
     For j = 1 To lastRow2 
      If StrComp(CStr(ws2.Range("A" & j).Value), _ 
         CStr(ws1.Range("A" & i).Value), _ 
         vbTextCompare) = 0 Then 
         ws1.Activate 
         ws1.Rows(i).Select 
         Selection.Copy 
         ws3.Activate 
         ws3.Range("A" & cnt).Select 
         Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme 
         Application.CutCopyMode = False 
         cnt = cnt + 1 
      End If 
     Next j 
    Next i 
Application.ScreenUpdating = True 
End Sub 
+0

谢谢你的回应。代码正在执行,但在结果显示之前“挂起”,因此我无法确认它是否有效。如何发布我的电子表格以便于测试?如果我太苛刻,我很抱歉。 – Werra2006 2013-03-21 14:43:14

+0

你可以使用[this](https://www.zoho.com/docs/)或任何其他免费的在线托管服务 – 2013-03-21 14:47:00

+0

我设法让代码在使用更强大的计算机后工作。周围神奇的工作,我真的很感谢帮助。 – Werra2006 2013-04-03 15:04:49