Vba:셀 값을 기준으로 행을 삭제하는 방법


VBA에서 다음 구문을 사용하여 셀 값을 기준으로 행을 삭제할 수 있습니다.

 Sub DeleteRowsByValue()

    Dim ws As Worksheet
    Set ws = ActiveSheet
  
    'clear existing filters
    On Error Resume Next
    ws.ShowAllData
    On Error GoTo 0
    
    'filter range where column 2 in range is equal to "East"
    ws.Range(" A1:C10 ").AutoFilter Field:=2, Criteria1:=" East "
  
    'delete rows that are visible
    Application.DisplayAlerts = False
    ws.Range(" A2:C10 ").SpecialCells(xlCellTypeVisible).Delete
    Application.DisplayAlerts = True
  
    'remove filter
    On Error Resume Next
    ws.ShowAllData
    On Error GoTo 0
  
End Sub

이 특정 매크로는 A1:C10 범위에서 B 열의 값이 “Is”와 같은 모든 행을 삭제합니다.

이 매크로는 다음 단계를 사용합니다.

  • A1:C10 에 필터를 적용하여 B열의 값이 “is”인 행만 표시합니다.
  • 그런 다음 보이는 모든 셀을 삭제하십시오.
  • 그런 다음 필터를 제거하십시오.

이렇게 하면 B열의 값이 “Is”인 A1:C10 범위의 모든 행이 삭제됩니다.

다음 예에서는 실제로 이 구문을 사용하는 방법을 보여줍니다.

예: VBA를 사용하여 셀 값을 기준으로 행 삭제

다양한 농구 선수에 대한 정보가 포함된 다음 데이터 세트가 있다고 가정합니다.

Conference 열이 “East”인 데이터세트의 모든 행을 제거한다고 가정해 보겠습니다.

이를 위해 다음 매크로를 생성할 수 있습니다:

 Sub DeleteRowsByValue()

    Dim ws As Worksheet
    Set ws = ActiveSheet
  
    'clear existing filters
    On Error Resume Next
    ws.ShowAllData
    On Error GoTo 0
    
    'filter range where column 2 in range is equal to "East"
    ws.Range(" A1:C10 ").AutoFilter Field:=2, Criteria1:=" East "
  
    'delete rows that are visible
    Application.DisplayAlerts = False
    ws.Range(" A2:C10 ").SpecialCells(xlCellTypeVisible).Delete
    Application.DisplayAlerts = True
  
    'remove filter
    On Error Resume Next
    ws.ShowAllData
    On Error GoTo 0
  
End Sub

이 매크로를 실행하면 다음과 같은 출력이 나타납니다.

Conference 열의 값이 “East”인 모든 행이 삭제되었습니다.

참고 : Application.DisplayAlerts=False 줄은 VBA에 보이는 줄을 제거하는 프로세스를 표시하지 않도록 지시하여 프로세스 속도를 높입니다.

추가 리소스

다음 자습서에서는 VBA에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

VBA: 셀에 조건부 서식을 적용하는 방법
VBA:범위 내 행 수를 계산하는 방법
VBA: 특정 텍스트가 포함된 셀 수를 계산하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다