반응형
엑셀 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)]로 공백 문자를 먼저 제거하는 것이 좋습니다.
스페이스바 공백이 들어간 셀도 데이터로 인식하므로, 매크로 실행 전 [찾기 및 바꾸기(Ctrl+H)]로 공백 문자를 먼저 제거하는 것이 좋습니다.
| 분석 항목 | 기존 수동 행 삭제 | VBA 자동화 삭제 |
|---|---|---|
| 처리 매커니즘 | 행 번호 우클릭 후 직접 삭제 | CountA 판정 후 자동 삭제 |
| 시간 효율성 | 1000줄 기준 약 10분 소요 | 데이터 양에 상관없이 1초 내 완료 |
공백 행 일괄 삭제 매크로로 수집된 로우 데이터를 완벽하게 정제하고 정시 퇴근을 쟁취해 보세요.
반응형
'코딩으로 시간 벌기 > 엑셀 VBA' 카테고리의 다른 글
| 엑셀 VBA 자동화 (23편): 버튼 하나로 마스터 데이터에서 부서별 독립 엑셀 파일 일괄 분리 저장하기 (1) | 2026.05.19 |
|---|---|
| 엑셀 VBA 자동화 (22편): 인사 명부 리스트대로 폴더 1초 만에 자동 생성하기 (0) | 2026.05.15 |
| 엑셀 VBA 자동화 (20편): 필요한 부분만 쏙! 선택 영역 별도 파일로 즉시 저장하기 (0) | 2026.05.07 |
| 엑셀 VBA 자동화 (19편): 보안이 필요한 인사/재무 시트, 1초 만에 숨기고 해제하기< (0) | 2026.05.06 |
| 엑셀 VBA 자동화 (18편): 수백 개의 증빙 서류 파일명, 1초 만에 바꾸는 마법 (0) | 2026.04.30 |
