VBA 전체 행 또는 전체 열 삭제하기
In this Article
이 튜토리얼에서는 VBA를 사용하여 Excel에서 행과 열을 삭제하는 다양한 방법을 보여드립니다.
전체 행 또는 전체 열 삭제하기
VBA에서 전체 행을 삭제하려면 다음 코드를 사용합니다:
Rows(1).Delete
행을 삭제할 때 Delete 메서드를 사용한다는 점에 주목하세요.
Rows 객체를 참조하는 대신 Range 객체를 기반으로 행을 참조할 수 있는 EntireRow를 사용할 수 있습니다:
Range("a1").EntireRow.Delete
전체 열을 삭제하는 것도 비슷하며 다음 코드를 사용합니다:
Columns(1).Delete
Range("a1").EntireColumn.Delete
여러 행 또는 여러 열 삭제하기
동일한 코드를 사용하여 여러 행을 한 번에 삭제할 수도 있습니다:
Rows("1:3").Delete
여러 열도 삭제할 수 있습니다:
Columns("A:C").Delete
여기서는 따옴표로 묶인 특정 행과 열 번호 또는 문자를 참조하고 있음을 주목하세요.
물론 범위의 전체 행을 참조할 수도 있습니다:
Range("a1:a10").EntireRow.Delete
참고: 아래 예제에서는 행 삭제만 보여 주지만, 위에서 볼 수 있듯이 열 삭제 구문도 거의 동일합니다.
비어있는 행 삭제하기
이 예제 코드는 전체 행이 비어 있는 경우 행을 삭제합니다:
Sub DeleteRows_EntireRowBlank()
Dim cell As Range
For Each cell In Range("b2:b20")
If Application.WorksheetFunction.CountA(cell.EntireRow) = 0 Then
cell.EntireRow.Delete
End If
Next cell
End Sub
Excel 워크시트 함수(COUNTA)를 사용합니다.
특정 열의 셀이 비어 있으면 행 삭제하기
이 함수는 해당 행의 특정 열이 비어 있는 경우 행을 삭제합니다(아래 예제의 경우는 B열입니다):
Range("b3:b20").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
셀 값에 따라 행 삭제하기
이 함수는 범위를 반복하고 해당 행의 특정 셀 값이 “삭제”인 경우 행을 삭제합니다.
Sub DeleteRowswithSpecificValue()
Dim cell As Range
For Each cell In Range("b2:b20")
If cell.Value = "삭제" Then
cell.EntireRow.Delete
End If
Next cell
End Sub
행 및 열 삭제 예제 더 보기
중복 행 삭제하기
이 코드는 범위 내 모든 중복 행을 삭제합니다:
Range("b2:c100").RemoveDuplicates Columns:=2
Columns:=2를 설정한 것에 주목하세요. 이는 행이 중복되는지 고려할 때 VBA가 데이터의 처음 두 열을 모두 확인하도록 지시합니다. 중복은 두 열 모두에 중복 값이 있는 경우에만 발견됩니다.
이 값을 1로 설정했다면 첫 번째 행만 중복 값을 확인했을 것입니다.
테이블 행 삭제하기
이 코드는 ListObjects를 참조하여 테이블의 두 번째 행을 삭제합니다.
ThisWorkbook.Sheets("Sheet1").ListObjects("list1").ListRows(2).Delete
필터링된 행 삭제하기
필터링 후 표시되는 행만 삭제합니다:
Range("b3:b20").SpecialCells(xlCellTypeVisible).EntireRow.Delete
범위 내 행 삭제하기
이 코드는 범위 내의 모든 행을 삭제합니다:
Range("a1:a10").EntireRow.Delete
이 코드는 선택한 모든 행을 삭제합니다:
이 코드는 선택한 모든 행을 삭제합니다:
Selection.EntireRow.Delete
마지막 행 삭제하기
이 코드는 B 열에서 마지막으로 사용된 행을 삭제합니다:
Cells(Rows.Count, 2).End(xlUp).EntireRow.Delete
2를 1로 변경하면 A 열에서 마지막으로 사용한 행을 삭제할 수 있습니다:
Cells(Rows.Count, 1).End(xlUp).EntireRow.Delete
문자 대신 번호로 열 삭제하기
열의 번호를 기준으로 열을 삭제하려면 다음과 같은 코드를 사용합니다:
Columns (2).Delete