VB(A)

흩어진 글자들을 한줄로 오름차순 정렬

당근쨈 2015. 4. 22. 22:07

텍스트로 표현된 숫자들이 셀의 곳곳에 흩어져있고

이것을 한줄로 나열하되 오름차순으로 정렬하는 매크로.

Collection 과 배열을 사용하면 순식간에 해결.


Sub sortNum()
 
    Dim rng As Range
    Dim cltNum As New Collection
    Dim varClt As Variant
    Dim i As Integer
    
    With Application
        .ScreenUpdating = False
        .EnableEvents = False
        .Calculation = xlCalculationManual
    End With
    
    'sheets2 기존값 삭제
    Sheets(2).Range("A1").CurrentRegion.ClearContents
    
    '중복값 제외하며 컬렉션에 삽입
    On Error Resume Next
        For Each rng In ActiveSheet.UsedRange.SpecialCells(2)
            cltNum.Add rng, CStr(rng)
        Next rng
    On Error GoTo 0
    
    '컬렉션에 삽입된 문자를 시트2에 입력
    i = 1
    For Each varClt In cltNum
        Sheets(2).Cells(i, 1= varClt
        i = i + 1
    Next varClt
    
    '숫자를 오름차순으로 정렬
    With Sheets(2)
        .Columns(1).SpecialCells(2).Sort key1:=.Range("A1"), order1:=xlAscending
        .Select
    End With
End Sub
cs


+ 매크로 실행 전. 숫자들이 흩어져있다. +



+ 매크로 실행 후. 숫자들이 오름차순으로 한줄로 나열된다. +


정렬.xlsm




'VB(A)' 카테고리의 다른 글

자동필터를 이용한 데이터 검색  (0) 2015.05.02
초과근무내역 가져오기  (0) 2015.04.29
표를 달력으로 보내기  (2) 2015.04.20
자동 빼기  (1) 2015.04.19
달력 생성 및 검색 기능  (0) 2015.04.18