• 쇼핑몰
  • 커뮤니티
  • 북마크

vb6.0/vba




[vba] [vba] Sort(내림차순, 오름차순) 기본 코드 (VBA 매크로)

하나를하더라도최선을
2020.05.02 13:26 1,013 0

본문



(사용자에게 정보를 주기위해 Macro는 다양한 옵션 또는 인수(argument)들을 저장한다. 하지만 특정 기능은 Macro기록중 일부만 사용해도 그 기능을 충족한다.)

3f8a8399cac38c994faf119f63b4af81_1588393474_1808.jpg         3f8a8399cac38c994faf119f63b4af81_1588393474_0778.jpg     

Sort 이전                              오른차순 Sort 이후
 

자동저장으로 정렬(Sort)을 할 경우 긴 식이 저장됨. 하지만 기본 기능은 다음 한 줄이면 된다. 

Sub OneColumnSort()

    [A2:D18].Sort Key1:=Range("A2"), Order1:=xlAscending    

    '[A2:D18].Sort [A2], 1   '오름차순

    '[A2:D18].Sort [A2], 2   '내림차순

    'ActiveSheet.Sort.Orientation = xlLeftToRight  '좌에서 우(즉 행방향)로 정렬할 경우 사용
End Sub
 

2개 이상의 열을 정렬할 때 아래 참조.

 

    With Range("A1").CurrentRegion
        .Sort key1:=.Cells(1, 1), key2:=.Cells(1, 2), key3:=.Cells(1, 3), Header:=xlYes
    End With

 

또는
    With Range("A1").CurrentRegion
        .Sort key1:=.Cells(1, 1), order1:=1, _
               key2:=.Cells(1, 2), order2:=0, _
               key3:=.Cells(1, 3), order3:=1, _
               Header:=xlYes
    End With
 

또는

    With ActiveSheet.Sort

        .SortFields.Clear
 
        .SortFields.Add Key:=[A2], Order:=1  'A열 기준 정렬
        .SortFields.Add Key:=[B2], Order:=1  'B열 기준 정렬
        .SetRange ActiveSheet.UsedRange   '정렬할 영역 지정
        .Header = xlYes                              '머릿말 있음

        .Apply                                            '정렬 실행
    End With


출처 ::: http://blog.naver.com/rosa0189/60132769488 

 

 

3f8a8399cac38c994faf119f63b4af81_1588393576_2697.gif 

매크로 실행 전...

 

3f8a8399cac38c994faf119f63b4af81_1588393598_0969.gif 

매크로 실행 후...

 

왼쪽에서 오른쪽으로 오름차순 정렬

 

            With ActiveSheet.Sort
                .SortFields.Clear
                .SortFields.Add Key:=[I29].Offset(n, 1).Resize(, 99)  '// , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
                .SetRange [I29].Offset(n, 1).Resize(, 99)
'                    .Header = xlGuess
'                    .MatchCase = False

                .Orientation = xlLeftToRight
'                    .SortMethod = xlPinYin
                .Apply
            End With



댓글목록 0

등록된 댓글이 없습니다.