조건을 만족하지 않는 행을 삭제하는 VBA Code
조건 : A행은 11개의 숫자로 이루어져 있는데 조건을 만족하지 않는 행(Row)은 삭제하라
Sub 행삭제()
Dim i, r, Counter As Integer
Dim rngAll As Range '// 범위 전체 영역 변수
Application.ScreenUpdating = False '화면 업데이트 (일시) 정지
Cells(2, "A").Select '// 현재 어느셀에 위치하든 A2 셀을 선택하라
Set rngAll = Range([A2], Cells(Rows.Count, "A").End(3))
'// 시작행 A2, 마지막행 자동인식
Counter = rngAll.Rows.Count
For i = 1 To Counter
If Len(ActiveCell.Value) <> 11 Or Not IsNumeric(ActiveCell.Value) Then
'// 현재 셀의 길이가 11이 아니거나 숫자가 아니면
Selection.EntireRow.Delete '//해당행 전체 삭제
Counter = Counter - 1 '// 행이 삭제되어 전체행 수를 하나 줄임
r = r + 1 '// 삭제된 행의 수를 카운트
Else
ActiveCell.Offset(1, 0).Select '// 아래행으로 이동
End If
Next i
Msgbox "총" & r & "행 삭제"
End Sub
'업무 능력 향상 > 엑셀 VBA 활용' 카테고리의 다른 글
업체별 공급가액 합계 및 정렬 2 (SUMIF 함수 사용) (0) | 2014.02.01 |
---|---|
AutoFilter로 시트별로 분리 저장 (4) | 2014.01.30 |
[VBA] 찾는 글자색에 색상을 주는 FIND VBA (7) | 2014.01.29 |
빈행 숨기기 (0) | 2014.01.29 |
업체별 공급가액 합계 및 정렬 1 (다른 시트 데이터 가져오기) (0) | 2014.01.26 |