2003이하 버전에서는 뒷부분을 먼저 정렬하고 앞부분의 3가지 조건으로 정렬하면 동일한 결과가 나옵니다.
도움이 되셨기를..
'### 3가지 조건 이상 정렬하기.. by abyul.com @ 2011-07-21 11:04:00 PM Sub sortOver3key()
Dim WS As Worksheet: Set WS = ActiveSheet Dim rngTarget As Range: Set rngTarget = Range("A:F") Dim rngOrder1 As Range: Set rngOrder1 = Range("C2") Dim rngOrder2 As Range: Set rngOrder2 = Range("B2") Dim rngOrder3 As Range: Set rngOrder3 = Range("E2") Dim rngOrder4 As Range: Set rngOrder4 = Range("F2")
'### 3번째 이후 조건으로 먼저 정렬한 다음.. rngTarget.Sort _ Key1:=rngOrder4, Order1:=xlAscending, _ Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal '### 1,2,3번 조건으로 정렬하면 됩니다. rngTarget.Sort _ Key1:=rngOrder1, Order1:=xlAscending, _ Key2:=rngOrder2, Order2:=xlAscending, _ Key3:=rngOrder3, Order3:=xlAscending, _ Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:=xlSortNormal
엑셀 재미에 푹~ 빠지셨군요.. ㅎㅎ
엑셀 2007버전 이상부터는 3가지 조건 이상이 한번에 적용이 가능합니다만..
3가지 제한을 말씀하시는거 보니, 부르끄님은 엑셀 2003을 사용하고 계신 것 같군요..
우선.. 첨부파일을 다운 받아 보세요..
다운 받기 : 20110721_VAB정렬 문의_xl2003.xls
VBA로 정렬시키는 코드는 아래와 같습니다.
엑셀 2007이상에서는 한번에 3가지 이상의 조건으로 정렬이 가능하지만,
2003이하 버전에서는 뒷부분을 먼저 정렬하고 앞부분의 3가지 조건으로 정렬하면 동일한 결과가 나옵니다.
도움이 되셨기를..
'### 3가지 조건 이상 정렬하기.. by abyul.com @ 2011-07-21 11:04:00 PM
Sub sortOver3key()
Dim WS As Worksheet: Set WS = ActiveSheet
Dim rngTarget As Range: Set rngTarget = Range("A:F")
Dim rngOrder1 As Range: Set rngOrder1 = Range("C2")
Dim rngOrder2 As Range: Set rngOrder2 = Range("B2")
Dim rngOrder3 As Range: Set rngOrder3 = Range("E2")
Dim rngOrder4 As Range: Set rngOrder4 = Range("F2")
'### 3번째 이후 조건으로 먼저 정렬한 다음..
rngTarget.Sort _
Key1:=rngOrder4, Order1:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
'### 1,2,3번 조건으로 정렬하면 됩니다.
rngTarget.Sort _
Key1:=rngOrder1, Order1:=xlAscending, _
Key2:=rngOrder2, Order2:=xlAscending, _
Key3:=rngOrder3, Order3:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:=xlSortNormal
End Sub