반응형

엑셀 VBA 자동화 (21편): 보고서 정제의 기본! 수천 줄의 지출결의서에서 빈 행만 1초 만에 일괄 삭제하기

재무 결산 자료나 인사 명부 취합 시 데이터 사이사이에 섞여 들어오는 불필요한 빈 행을 단 1초 만에 해결하는 자동화 코드를 배웁니다.
EXCEL PRACTICAL GUIDE

VBA의 For...Next 반복문과 WorksheetFunction.CountA 메서드를 결합하면 무수히 많은 공백 행만 찾아내어 깔끔하게 삭제할 수 있습니다.

1단계: VBA 편집기 창 열고 모듈 삽입
키보드의 Alt + F11을 눌러 VBA 편집기를 열고, 상단 메뉴에서 [삽입] - [모듈]을 차례로 클릭합니다.

2단계: 빈 행 일괄 삭제 매크로 코드 작성
새로 생성된 모듈 창에 아래 코드를 복사하여 붙여넣습니다.

Sub DeleteEmptyRows()
    Dim ws As Worksheet, lastRow As Long, i As Long
    Set ws = ActiveSheet
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    Application.ScreenUpdating = False
    For i = lastRow To 1 Step -1
        If WorksheetFunction.CountA(ws.Rows(i)) = 0 Then
            ws.Rows(i).Delete
        End If
    Next i
    Application.ScreenUpdating = True
    MsgBox "지출결의서 데이터의 모든 공백 행이 클리닝되었습니다!"
End Sub

3단계: 뒤에서부터 거꾸로 검사하는 이유(Step -1)
행을 삭제할 때 위에서 아래로 내려가면 행 번호가 당겨지면서 데이터 누락 버그가 발생합니다. 그렇기 때문에 반드시 Step -1을 붙여 거꾸로 올라가며 삭제해야 정확합니다.

4단계: 실행 단추 도형 연결
엑셀 시트에서 [삽입] - [도형]으로 사각형 단추를 그린 뒤, 우클릭 후 [매크로 지정]을 선택하여 'DeleteEmptyRows' 코드를 연결해 줍니다.

💡 실무 팁: 눈에 보이지 않는 공백 주의
스페이스바 공백이 들어간 셀도 데이터로 인식하므로, 매크로 실행 전 [찾기 및 바꾸기(Ctrl+H)]로 공백 문자를 먼저 제거하는 것이 좋습니다.
분석 항목기존 수동 행 삭제VBA 자동화 삭제
처리 매커니즘행 번호 우클릭 후 직접 삭제CountA 판정 후 자동 삭제
시간 효율성1000줄 기준 약 10분 소요데이터 양에 상관없이 1초 내 완료
공백 행 일괄 삭제 매크로로 수집된 로우 데이터를 완벽하게 정제하고 정시 퇴근을 쟁취해 보세요.
반응형

+ Recent posts