나눔터  
  HOME > 나눔터 > 묻고답하기 > 엑셀
엑셀
엑셀에 대한 질문과 답변을 올려주세요. 단, 취지에 맞지 않는 글은 운영자가 삭제합니다.
 "000 님, 도와주세요", "부탁 드립니다.", "급합니다!" 등과 같이 막연한 제목을 달지 말아주세요.
[필독] 빠르고 정확한 답변을 얻는 16가지 Tip !
[필독] 저작권법 개정에 따른 이용안내
작성자:  

 dew (dewdrop)

추천:  2
파일:     조회:  1598
제목:   [RE]VBA - 특정 범위의 빈행 삭제하기
     
  * 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.

 - 엑셀 버전(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
 
[불량 게시물 신고]  
유찬하오 되네요! 감사합니다 고수님!~04-01 (17:41)
삭제 ■신고
        
  

작성일 : 2019-04-01(13:10)
최종수정일 : 2019-04-01(13:10)
 


 ◎ 관련글

  제 목   작성자   날짜
VBA - 특정 범위의 빈행 삭제하기 유찬하 2019-04-01
[RE]VBA - 특정 범위의 빈행 삭제하기 dew 2019-04-01
[RE]VBA - 특정 범위의 빈행 삭제하기 참서리 2019-04-01