VBA에서 행 삭제

Iqra Hasnain 2023년6월21일
  1. VBA에서 행 삭제
  2. VBA에서 전체 행을 삭제하는 방법
  3. VBA에서 여러 행을 삭제하는 방법
  4. VBA에서 대체 행을 삭제하는 방법
  5. VBA에서 빈 행을 삭제하는 방법
  6. VBA에서 특정 값을 가진 행을 삭제하는 방법
  7. VBA에서 중복 행을 삭제하는 방법
VBA에서 행 삭제

VBA의 예제를 통해 상황에 따라 행을 삭제하는 방법을 소개합니다.

VBA에서 행 삭제

Excel 시트에서 행을 삭제하는 것은 키보드 단축키 방법이나 마우스 또는 터치패드를 사용하여 수행할 수 있는 쉬운 작업입니다. 그러나 특정 행 또는 여러 행을 삭제하는 경우 VBA 경로를 사용하는 것이 유용합니다.

VBA는 불필요한 필드가 데이터의 일부인 경우 Excel 시트의 행 또는 열을 삭제하는 데 사용됩니다. 사용자가 특정 조건에서 열을 삭제하는 데 도움이 될 수 있습니다.

예를 들어 중복 행은 VBA 명령을 사용하여 쉽게 삭제할 수 있습니다.

이 문서에서는 사용자가 Excel 워크시트에서 작업하는 데 도움이 될 수 있는 몇 가지 주요 예제 및 관련 VBA 코드를 다룹니다. 이러한 여러 시나리오에는 다음이 포함됩니다.

  1. 전체 행을 삭제하려면

    1.1. 첫 번째 행을 삭제하려면

    1.2. 특정 행을 삭제하려면

  2. 여러 행을 삭제하려면

  3. 대체 행을 삭제하려면

  4. 빈 행을 삭제하려면

  5. 특정 날짜 값이 있는 행을 삭제하려면

  6. 중복 행을 삭제하려면

VBA에서 전체 행을 삭제하는 방법

이제 VBA에서 첫 번째 행을 삭제하려고 시도하는 첫 번째 시나리오에 대해 논의해 보겠습니다. 첫 번째 행을 삭제하려는 경우 VBA의 EntireRow.Delete 방법이 도움이 될 수 있습니다.

이제 예제에서 이 방법을 사용하여 Excel 시트의 첫 번째 행을 삭제해 보겠습니다.

deleteFirstRow()sub를 생성합니다. 이 목적을 위한 코드는 다음과 같습니다.

# VBA
Sub DeleteFirstRow()
ThisWorkbook.Worksheets(1).Rows(1).EntireRow.Delete
End Sub

출력:

VBA 코드를 사용하여 첫 번째 행 삭제

위의 예는 특정 숫자를 참조하는 행을 지정하고 EntireRow.Delete 메서드를 사용하여 이 코드가 작동함을 보여줍니다. 따라서 코드는 행 번호를 언급하여 모든 행에 사용할 수 있습니다.

그럼 아래와 같이 위의 방법으로 행 번호 7과 10을 삭제해 보도록 하겠습니다.

# VBA
Sub DeleteSpecificRow()
ThisWorkbook.Worksheets(1).Rows(7).EntireRow.Delete
ThisWorkbook.Worksheets(1).Rows(10).EntireRow.Delete
End Sub

출력:

VBA 코드를 사용하여 특정 행 삭제

위의 예제는 삭제할 행 번호를 전달했을 때 EntireRow.Delete 메서드를 사용하여 전체 행을 쉽게 삭제할 수 있음을 보여줍니다.

VBA에서 여러 행을 삭제하는 방법

이전 예제에서 여러 EntireRow.Delete 메서드를 사용하여 여러 행을 삭제했습니다. 그러나 이제 하나의 방법으로 여러 행을 삭제하는 방법에 대해 이야기하겠습니다.

VBA에서 범위 개체를 사용하여 여러 행을 삭제할 수 있습니다. 사용자는 먼저 엑셀 시트에서 삭제할 셀의 개수를 선택하고 아래와 같이 범위를 넘긴다.

# VBA
Sub deleteMultipleRow()
Range("A1:C7").EntireRow.Delete
End Sub

출력:

VBA 코드를 사용하여 여러 행 삭제

위의 예는 Range() 메서드를 사용하여 EntireRow.Delete 메서드를 사용하여 삭제할 행과 열의 범위를 전달할 수 있음을 보여줍니다.

데이터에서 여러 행과 열을 직접 제거할 수 있습니다. VBA 코드를 사용하여 데이터에서 여러 행(2행에서 7행)을 제거합니다.

# VBA
Rows("2:7").Delete

출력:

VBA 코드에서 행 함수를 사용하여 여러 행 삭제

열 범위(B에서 C까지)를 삭제하려면 다음 방법을 사용할 수 있습니다.

# VBA
Columns("B:C").Delete

출력:

![VBA 코드에서 열 함수를 사용하여 여러 열 삭제](</img/VBA/VBA code.gif>에서 열 함수를 사용하여 여러 열 삭제

VBA에서 대체 행을 삭제하는 방법

엑셀 시트는 다양한 용도로 사용되며, 엑셀 시트 형태로 기록을 저장하기 위해 사용하는 공용 소프트웨어입니다. Excel 시트는 대부분의 데이터가 Excel 시트에 저장되어 해당 데이터의 결과를 수식으로 찾기 때문에 재무 시스템의 기본 부분입니다.

일부 재무 Excel 시트에는 레코드를 개선하기 위해 제거해야 하는 대체 숫자에 대한 빈 행이 포함되어 있습니다. VBA는 사용자가 유용하지 않은 전체 대체 행을 제거하는 데 도움이 됩니다.

아래와 같이 대체 번호가 있는 행을 제거하고 이를 위해 sub를 생성해 봅시다.

Sub AlternateRowDel()
rowLen = Selection.Rows.Count
For a = rowLen To 1 Step -2
    Selection.Rows(a).EntireRow.Delete
Next a
End Sub

출력:

![VBA 코드에서 대체 행 삭제](</img/VBA/VBA code.gif>에서 대체 행 삭제

위의 AlternateRowDel() 하위에서 볼 수 있듯이 선택 항목의 행 수를 변수 rowLen에 저장했습니다. 이 변수는 완전히 제거할 총 행 수입니다.

하위 항목에는 Step -2로 실행되는 for 루프가 있습니다. 이는 모든 두 번째 행이 제거됨을 나타냅니다. 세 번째 행을 모두 제거하려면 step -3이라고 쓰고 사용자가 데이터에서 제거하려는 대체 행의 다른 수에 대해 동일한 프로세스를 사용할 수 있습니다.

VBA에서 빈 행을 삭제하는 방법

대규모 데이터 컬렉션으로 작업할 때 비어 있는 행이 많거나 적을 가능성이 있습니다. 수동으로 삭제를 시작하면 시간이 많이 걸리고 찾기가 어려울 수 있으므로 VBA를 사용하여 삭제할 수 있습니다.

대규모 데이터 수집을 제공할 때 코드는 일반적으로 인간보다 더 정확하게 작동합니다. SpecialCells 메소드는 이러한 행을 삭제할 수 있습니다.

빈 셀만 선택하여 xlCellTypeBlanks를 전달할 수 있습니다. 아래와 같이 예제를 통해 VBA를 사용하여 빈 행을 모두 삭제해 봅시다.

# VBA
Sub RemoveBlankRows()
Selection.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

출력:

VBA 코드에서 빈 행 삭제

위의 예는 한 줄의 코드로 수백 또는 수천 개의 빈 행을 삭제할 수 있음을 보여줍니다. 수동으로 삭제를 시작하면 몇 시간 또는 며칠이 걸릴 수 있습니다.

VBA에서 특정 값을 가진 행을 삭제하는 방법

때때로 특정 값을 포함하는 행을 삭제해야 하는 상황에 직면할 수 있습니다. 그리고 이러한 행을 수동으로 삭제하는 것은 어렵고 바쁜 과정이 될 수 있습니다.

그러나 VBA는 이 문제에 대한 솔루션도 제공합니다. 모든 행을 반복하고 특정 값을 찾을 수 있는 사용자 지정 하위를 만들 수 있습니다.

이러한 행에서 값이 발견되면 EntireRow.Delete 메서드를 사용하여 해당 행을 삭제할 수 있습니다.

아래와 같이 예제에서 이 논리를 사용하겠습니다.

# VBA
Sub RemoveWithValue()
For a = Selection.Rows.Count To 1 Step -1
If Cells(a, 1).Value = "Delete" Then
Cells(a, 1).EntireRow.Delete
End If
Next a
End Sub

출력:

![VBA 코드에서 특정 값이 있는 행 삭제](</img/VBA/VBA code.gif>에서 특정 값이 있는 행 삭제

위의 예는 이 코드가 모든 행을 반복하고 delete라는 단어를 찾는 것을 보여줍니다. 이러한 행에서 delete가 발견된 경우.

우리 코드는 이러한 행을 삭제할 것입니다.

VBA에서 중복 행을 삭제하는 방법

일부 결과에 문제를 일으킬 수 있는 중복이 많은 데이터 집합이 있을 수 있는 상황이 있을 수 있습니다. 수동으로 시작하면 중복 삭제도 바쁠 수 있습니다.

특정 항목이 이전에 표시되었는지 기억하기 어려울 수도 있습니다.

더 쉽고 간단하게 만들기 위해 VBA에서 RemoveDuplicates라는 다른 방법을 사용할 수 있습니다. 이 메서드는 범위를 가져와 중복 항목을 찾아 삭제합니다.

아래와 같이 예제에서 이 시나리오를 사용하겠습니다.

# VBA
Range("A1:A10").RemoveDuplicates Columns:=1

출력:

![VBA 코드에서 중복 값이 있는 행 삭제](</img/VBA/VBA code.gif>에서 중복 값이 있는 행 삭제

위의 예는 a1 셀에서 b10 셀로 범위를 전달했음을 보여줍니다. 그리고 우리의 코드는 중복을 찾아 삭제할 것입니다.

Excel 시트에서 VBA 코드를 사용하는 방법

때때로 사람들은 Excel 시트에서 스크립트를 실행하기 위해 VBA 코드를 작성할 수 있는 위치에 대해 혼란스러워합니다.

다음은 원하는 Excel 시트에서 VBA 코드를 실행하기 위해 따를 수 있는 몇 가지 단계입니다.

  1. 먼저 VBA 편집기를 열어야 합니다. 다음 버튼을 눌러 VBA 편집기를 쉽게 열 수 있습니다.

    먼저 ALT 키를 누른 상태에서 F11 키를 누릅니다.

  2. VBA 편집기가 열리면 보기 옵션으로 이동하여 프로젝트 탐색기를 선택합니다. VBA 편집기 모드로 들어가면 워크시트 왼쪽에 있는 프로젝트 탐색기를 얻을 수도 있습니다.

  3. 이제 코드를 실행할 개체를 마우스 오른쪽 버튼으로 클릭합니다.

  4. 이제 워크시트에 모듈을 추가합니다. 삽입을 클릭하고 모듈을 선택하여 워크시트에 모듈을 쉽게 추가할 수 있습니다.

  5. 붙여넣고자 하는 코드를 복사하여 붙여넣습니다. 또는 거기에 코드를 작성하고 싶다면 그렇게 할 수 있습니다.

  6. 커서를 유지하고 F5 키를 눌러 코드를 실행합니다. VBA 도구 모음에 있는 녹색 삼각형을 클릭하여 VBA 코드를 실행할 수도 있습니다.

관련 문장 - VBA Row