2013-06-25 2 views
0

열의 기준에 따라 한 시트에서 다른 시트로 다양한 범위의 데이터를 복사 할 수있는 매크로를 작성하려고합니다. 복사 할 열 앞에.조건에 따라 한 시트에서 다른 시트로 여러 행의 데이터를 복사하는 매크로 만들기

열 B는 기준 열입니다. 이 열의 행에 1이 있으면 C에서 AN까지의 열은 1이있는 행에서 복사되고 해당 시트의 맨 위에서 시작하여 다른 시트에 붙여 넣습니다.

다음 코드가 있습니다. 조건을 만족하는 첫 번째 행을 찾고 두 번째 시트에이 행을 복사하지만 코드는 조건을 만족하는 다른 행을 찾도록 반복하지 않습니다. 기준이 충족되는 각 인스턴스를 반복하고 복사하도록 코드를 조정하려면 어떻게해야합니까?

Sub testIt() 

Dim i As Integer 

    Application.ScreenUpdating = False 

    Sheets("DataDump").Activate 

    For i = 2 To Range("B2").End(xlDown).Row() 
     If Range("B" & i).Value = 1 Then 
      Range("C" & i, "AN" & i).Copy 
      Sheets("PriceData").Activate 
      ActiveSheet.Range("B2", "AM2").Select 
      ActiveSheet.Paste 
     End If 
    Next i 

    Application.ScreenUpdating = True 

End Sub 

답변

0
Sub testIt() 

Dim i As Long, shtSrc As Worksheet, rngDest As Range 

    Application.ScreenUpdating = False 

    Set shtSrc = Sheets("DataDump") 
    Set rngDest = Sheets("PriceData").Cells(Rows.Count, 2).End(xlUp).Offset(1, 0) 

    For i = 2 To shtSrc.Range("B2").End(xlDown).Row 
     If shtSrc.Range("B" & i).Value = 1 Then 
      shtSrc.Range("C" & i & ":AN" & i).Copy rngDest 
      Set rngDest = rngDest.Offset(1, 0) 
     End If 
    Next i 

    Application.ScreenUpdating = True 

End Sub 
+0

덕분에 팀은 코드가 완벽하게 작동! –

관련 문제