텍스트로 표현된 숫자들이 셀의 곳곳에 흩어져있고
이것을 한줄로 나열하되 오름차순으로 정렬하는 매크로.
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 WithEnd Sub cs
'VB(A)' 카테고리의 다른 글
자동필터를 이용한 데이터 검색 (0) | 2015.05.02 |
---|---|
초과근무내역 가져오기 (0) | 2015.04.29 |
표를 달력으로 보내기 (2) | 2015.04.20 |
자동 빼기 (1) | 2015.04.19 |
달력 생성 및 검색 기능 (0) | 2015.04.18 |