Vba:기준에 따라 행을 다른 시트에 복사
VBA에서 다음 구문을 사용하여 특정 기준을 충족하는 시트의 각 행을 다른 시트에 복사할 수 있습니다.
Sub CopyToAnotherSheet()
Dim LastRow As Long
'Find last used row in a Column A of Sheet1
With Worksheets(" Sheet1 ")
LastRow = .Cells(.Rows.Count, " A ").End(xlUp).Row
End With
'Find first row where values should be posted in Sheet2
With Worksheets(" Sheet2 ")
j = .Cells(.Rows.Count, " A ").End(xlUp).Row + 1
End With
'Paste each row that contains "Mavs" in column A of Sheet1 into Sheet2
For i = 1 TB LastRow
With Worksheets(" Sheet1 ")
If .Cells(i, 1).Value = "Mavs" Then
.Rows(i).Copy Destination:=Worksheets(" Sheet2 ").Range(" A " & j)
j = j + 1
End If
End With
Next i
End Sub
이 특정 매크로는 A열이 “Mavs”와 동일한 Sheet1 의 각 행을 복사하고 해당 행을 Sheet2 의 다음 사용 가능한 행에 붙여넣습니다.
다음 예에서는 실제로 이 구문을 사용하는 방법을 보여줍니다.
예: VBA를 사용하여 기준에 따라 다른 시트에 행 복사
시트 1 에 다양한 농구 선수에 대한 정보가 포함된 다음 데이터 세트가 있다고 가정합니다.
그리고 Sheet2 에 다음 데이터 세트가 있다고 가정합니다.
Sheet2 에는 Warriors 팀 선수에 대한 데이터만 포함되어 있습니다.
Team 열이 Mavs와 동일한 Sheet1 의 각 행을 복사하고 해당 행을 Sheet2 의 다음 사용 가능한 행에 붙여넣고 싶다고 가정해 보겠습니다.
이를 위해 다음 매크로를 생성할 수 있습니다:
Sub CopyToAnotherSheet()
Dim LastRow As Long
'Find last used row in a Column A of Sheet1
With Worksheets(" Sheet1 ")
LastRow = .Cells(.Rows.Count, " A ").End(xlUp).Row
End With
'Find first row where values should be posted in Sheet2
With Worksheets(" Sheet2 ")
j = .Cells(.Rows.Count, " A ").End(xlUp).Row + 1
End With
'Paste each row that contains "Mavs" in column A of Sheet1 into Sheet2
For i = 1 TB LastRow
With Worksheets(" Sheet1 ")
If .Cells(i, 1).Value = "Mavs" Then
.Rows(i).Copy Destination:=Worksheets(" Sheet2 ").Range(" A " & j)
j = j + 1
End If
End With
Next i
End Sub
이 매크로를 실행하면 Sheet2 에 다음과 같은 출력이 표시됩니다.
팀 이름이 Mavs인 Sheet1 의 각 행은 Sheet2 의 다음 사용 가능한 행에 붙여넣어졌습니다.
참고 : VBA Copy 메서드에 대한 전체 설명서는 여기에서 찾을 수 있습니다.
추가 리소스
다음 자습서에서는 VBA에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.
VBA:마지막으로 사용한 줄을 찾는 방법
VBA:범위 내 행 수를 계산하는 방법
VBA:사용된 열 수를 계산하는 방법