▶  바로가기
 
           

[vba] 병합된 셀이 있는 상태에서 정렬하기

작성자 정보

  • 모아 작성
  • 작성일

컨텐츠 정보

  • 링크

  • 본문

    Option Explicit
    
    Sub Jo_sort()
    
    Dim rD As Range
    
    Dim jList As Object
    
    Dim i As Long, iCol As Long
    
    'Application.ScreenUpdating = False
    
    Set rD = Range("a1").CurrentRegion '데이터 범위
    
    iCol = rD.Columns.Count
    
    Set jList = CreateObject("system.collections.sortedlist")
    
    With jList
    
        For i = 1 To rD.Rows.Count Step 2
    
            Dim sT As String
    
            sT = rD.Cells(i, 1).Value & rD.Cells(i, 3).Value
    
            If Not .contains(sT) Then .Add sT, rD.Cells(i, 1).Resize(2, iCol)
    
        Next i
    
        For i = 0 To .Count - 1
    
          .getbyindex(i).Copy Cells(i * 2 + 1, 100)
    
        Next i
    
    End With
    
    rD.Offset(, 99).Cut rD
    
    Application.ScreenUpdating = True
    
    End Sub
    

    지식인에서 가져온 글

    .Add sT, rD.Cells(i, 1).Resize(2, iCol) 이 부분은 Scripting.Dictionary와 유사하다.

    특징적인 것은, rD.Cells(i, 1).Resize(2, iCol) 이 부분은 셀병합이 된 구조인데

    이상태로 collection에 담아두었다가

    뒤의 코드에서 collection안에 있는 구조를 "그대로 복사"할 수 있다는 것이다.

     .getbyindex(i).Copy Cells(i * 2 + 1, 100)

    즉, collection에 텍스트, 숫자, 셀 정도만 담아둘 수 있는 것이 아니라

    셀의 구조(병합된 형태)조차도 담아둘 수 있다는 것. 

    이 특성은 현재의 sortedlist 뿐만 아니라 이전에 사용했던 dictionary에도 똑같이 적용된다.

    d.items()(3).Copy Range("J1")


    이렇게 하면 4번째 (index는 0부터 시작이므로)  key에 있는 item이 복사되어 J1셀에 붙여넣어진다.

     


    포인트 선물 선물명단 선물하기

    최소 5P ~ 최대 100000000P 까지 가능합니다.
    로그인 후 선물하실 수 있습니다.

    선물 받은 내용이 없습니다.


    관련자료

    댓글 0
    등록된 댓글이 없습니다.

    잠시만요! 로그인 후 글쓰기를 하실 수 있습니다!
    전체 503 / 29 페이지
    번호
    제목
    이름
    트레이딩뷰 | investing.com | CoinMarketCap


    • 오늘 방문자 671 명
    • 어제 방문자 922 명
    • 최대 방문자 4,659 명
    • 전체 방문자 1,129,855 명
    • 전체 게시물 75,336 개
    • 전체 댓글수 3,063 개
    • 오늘 게시물 26 개
    • 오늘 댓글수 0 개

    공지글


    포인트 랭킹

    • 순위
    • 닉네임
    • 포인트
    • 변동
    • 1
    • 빠비오
    • 916,013
    • -
    • 2
    • 대박송
    • 263,318
    • -
    • 3
    • 말로
    • 78,641
    • New
    • 4
    • 홍신
    • 35,290
    • New
    • 5
    • waterlevel
    • 28,500
    • New
    • 6
    • 한라산유입
    • 23,580
    • New
    • 7
    • 바넌피선불유심내구제
    • 21,545
    • New
    • 8
    • 커뮤니티
    • 19,000
    • New
    • 9
    • 버부기
    • 17,350
    • ▼ 5
    • 10
    • 만세인
    • 17,327
    • ▼ 7
    • 11
    • 로니콜먼
    • 16,690
    • New
    • 12
    • 짱구짱아
    • 16,130
    • New
    • 13
    • 모아누리
    • 14,936
    • New
    • 14
    • 시간은금
    • 13,000
    • New
    • 15
    • 누구시낭
    • 12,476
    • New





    알림 0
    💬 포인트AD - 한줄 하루일상  출석체크  코인투자  주식투자  미술투자  음악투자  부동산투자  한우투자  명품투자  숙박투자  K-콘텐츠  에너지투자  기타투자