VB(A)

그룹으로 내림차순

당근쨈 2015. 5. 15. 18:04

'단추1' 를 기준으로 왼쪽에는 그냥 리스트가

오른쪽에는 숫자의 내림차순으로 그룹별로 생성되어있다.


1. 배열을 이용하여 C2:D3 처럼 네개의 데이터를 하나로 묶고

2. 숫자를 기준으로 내림차순을 해서 배열을 재배치 하고

3. F2부터 데이터를 입력한다.


Sub sortDesc()
 
    Dim List() As Variant
    Dim First As Integer, Last As Integer
    Dim i As Integer, j As Integer
    Dim temp As Variant
    Dim cntC As Integer
    
    '반복 횟수 설정
    cntC = Int(Columns("C").SpecialCells(2).Rows.Count / 2- 1
    
    '모델명을 배열에 삽입
    For i = 0 To cntC
        ReDim Preserve List(i)
        List(i) = Range("C2").Offset(i * 2).Resize(22)
    Next i
    
    First = LBound(List)
    Last = UBound(List)
    
    '내림차순으로 정렬
    For i = First To Last - 1
        For j = i + 1 To Last
            If List(i)(12< List(j)(12Then
                temp = List(j)
                List(j) = List(i)
                List(i) = temp
            End If
        Next j
    Next i
    
    '셀에 내림차순으로 정렬된 배열을 뿌림
    For i = 0 To cntC
        With Range("F2").Offset(i * 2)
            .Resize(22= List(i)
            .Offset(11).Style = "Percent"
        End With
    Next i
End Sub
cs


정렬 방법 v.2.xlsm


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

한글로 된 텍스트파일 불러오기  (0) 2015.05.16
2중 VLOOKUP  (0) 2015.05.15
셀 안의 문자열 삭제  (0) 2015.05.03
자동필터를 이용한 데이터 검색  (0) 2015.05.02
초과근무내역 가져오기  (0) 2015.04.29