빈행제거
엑셀에서 중간 중간 빈행이 많아서 이걸 지우고 싶을 때 사용하는 VBA 코드다.
선택된 열 기준으로 빈셀을 만나면 그 행 전체를 지우므로 빈셀 옆에 데이터가 있어도 지워진다.
VBA는 간단한 프로그램이므로 내가 생각하는 것으로 해결이 어려우면 역발상으로 반대로 되는 걸 고려하여 실행하면 쉽게 풀리기도 한다.
통상적으로 빈행 삭제는 뒤에서부터 앞으로 실행해야 한다.
Sub 빈행삭제()
Dim i As Double
Dim LastRow As Double
Dim r As Double
Application.ScreenUpdating = False '// 화면 업데이트 (일시) 정지
LastRow = Cells(Rows.Count, "B").End(3).Row '// 조건을 설정할 행 지정
For i = LastRow To 1 Step -1
If Cells(i, "C").Value = "" Then
Cells(i, "C").EntireRow.Delete
r = r + 1
End If
Next i
MsgBox "총" & r & "행 삭제"
End Sub
또다른 방법으로 하면 달랑 코드 한줄이면 된다.
코드설명 : Columns("C") 는 C열 전체를 선택하고, SpecialCells(4)는 공백인 셀인 경우 EntireRow.Delete 행전체를 삭제하라. 즉, C열에서 공백인 셀이 있으면 그 행을 삭제하라
Sub 빈행삭제()
// C열에 빈셀이 존재하면 모두 지워라.
Columns("C").SpecialCells(4).EntireRow.Delete
'// (4)는 xlCellTypeBlanks
End Sub
시스템에서 가져온 데이터의 경우에는 공백처럼 보이는데 공백이 아니라면 그 행은 Asc (아스키코드) 값을 먼저 알아내야 한다.
'업무 능력 향상 > 엑셀 VBA 기초' 카테고리의 다른 글
VBA 빈셀은 지우고 한글은 우측셀로 이동시키기 (0) | 2014.02.28 |
---|---|
VBA 괄호제거 (0) | 2014.02.26 |
복사할 때 글자색도 같이 넣는 방법 (0) | 2014.01.29 |
[VBA기초] Number 를 문자(Text)로 한번에 변경 (0) | 2014.01.26 |
[VBA기초] 색상을 이용한 결과값 구하기 (0) | 2014.01.26 |