|
* 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.
- 엑셀 버전(95,97,2000,xp,2003,2007): 2016
* 아래줄에 질문을 작성하세요 >>
안녕하세요
제가 데이터를 테이블에 붙인 다음 빈행을 제거하는 VBA코드를 입력했고,A10:J1000중 빈Cell이 있으면 해당 행 전체를 삭제하는걸로 되어 있습니다.
혹시 행 전체가 아닌 A6부터 J1000의 범위에서 A~J까지의 행만 삭제하고 올리는 코드로 변경하고 싶다면 어떻게 코드를 써야할까요?ㅠㅜ 부탁 드리겠습니다
* 첨부 이미지에서 코드 참고 부탁 드립니다.
이미지의 2번 아래 줄의 Delete 전에 Range("A10:J1000")을 붙였더니 아래 제거가 되는것 같긴한데 행10~행15까지는 작동을 안하더라구요. 참고 부탁 드립니다
==============[유찬하님 글에 대한 답변입니다]==============
Sub Delete_Oranize()
Dim ws As Worksheet
Dim rDelete As Range '
With Application
.ScreenUpdating = False
.DisplayAlerts = False
End With
Set ws = ThisWorkbook.Worksheets("앱정리_IOS_미국")
ws.Activate
On Error Resume Next
ws.ShowAllData
On Error GoTo 0
'1.
ws.Range("A9:J1000").AutoFilter Field:=1, Criteria1:=""
'2. 해당범위를 변수에 저장
Set rDelete = ws.Range("A10:J1000").SpecialCells(xlCellTypeVisible)
' => 여기서 삭제할 경우 행전체가 삭제됩니다.
'3.
On Error Resume Next
ws.ShowAllData
On Error GoTo 0
'4. 여기서 삭제해야 됩니다.
rDelete.Delete
MsgBox "Completed"
With Application
.ScreenUpdating = True
.DisplayAlerts = True
End With
End Sub
|
|