2014-11-13 4 views
0

나는 그것이 실행될 때 C로 값 "2"를 찾고 셀 A-C에서 그 행을 sheet2로 복사하는 매크로를 디자인하고 있습니다. 작동중인 코드가 작동하지 않습니다. 제발 도와주세요.Vba 루프 범위 특정 범위

Sub LoopRange() 

    Dim rCell As Range 
    Dim rRng As Range 

    Set rRng = Sheet1.Range("C1:C20") 

    For Each rCell In rRng.Cells 

    If rCell.Value = "2" Then 
    Range(Cells(1, 1), Cells(3, 3)).Copy Sheets("Sheet2").Cells(1, 1) 
    End If 

    Next rCell 

End Sub 
+1

"내가하고 있어요 코드는 작동하지 않습니다"무엇을 잘못하고 어디에? – pnuts

+0

실행하면 아무것도 선택하지 않거나 반복하지 않습니다. 이 시트 ("Sheet1") .Range (.Cells (1, 1), .Cells (3, 3)) 시트 복사 ("Sheet2") 셀 (1, 1) End With " 시트 1에서 복사하고 시트 2에 붙여 넣기가 작동합니다. 그러나 시트를 통해 루프를 만들 때 아무런 결과도 얻지 못합니다. – kay

+0

똑같은 위치로 똑같은 범위를 복사합니다. 셀 (rCell.Row, 1)' –

답변

1

현재 코드는 정확한 동일한 셀을 매번 똑같은 위치에 복사합니다. 대신이 시도 :

Sub test() 
    Dim rCell As Range 
    Dim rRng As Range 
    Dim cnt As Long 
    cnt = 1 

    Set rRng = Sheet1.Range("C1:C20") 

    For Each rCell In rRng.Cells 
    If rCell.Value = "2" Then 
     Range(Cells(rCell.Row, 1), Cells(rCell.Row, 3)).Copy Sheets("Sheet2").Cells(cnt, 1) 
     cnt = cnt + 1 
    End If 
    Next rCell 
End Sub 

시트 1 개 테스트 데이터 :

enter image description here

시트 2의 결과

enter image description here

+0

감사합니다 대단히 감사, 사람들의 훌륭한 공동체 ... – kay