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: 특정 텍스트가 포함된 셀 수를 계산하는 방법