Excel VBA의 특정 열을 기준으로 데이터 범위 정렬
- VBA의 특정 열을 기준으로 데이터 범위 정렬
-
VBA에서
Range.Sort()
메서드를 사용하여 특정 열을 기준으로 데이터 범위 정렬 - VBA에서 매크로를 기록하여 특정 열을 기준으로 데이터 범위 정렬
- VBA에서 단일 수준 정렬을 사용하여 특정 열을 기준으로 데이터 범위 정렬
- VBA에서 다중 수준 정렬을 사용하여 특정 열을 기준으로 데이터 범위 정렬
- VBA에서 다른 매개변수를 사용하여 특정 열을 기준으로 데이터 범위 정렬
Excel VBA에서 특정 열을 기준으로 데이터 범위를 정렬하는 다양한 방법을 소개합니다.
VBA의 특정 열을 기준으로 데이터 범위 정렬
Excel에는 리본 및 정렬 대화 상자에서 사용할 수 있는 데이터를 정렬하는 기본 제공 기능이 있습니다. 그러나 코딩에서 데이터 정렬이 필요할 때마다 VBA를 사용하여 데이터를 정렬해야 할 수도 있습니다.
주어진 데이터의 정렬 프로세스를 위한 매크로를 생성하여 많은 시간과 에너지를 절약할 수 있습니다. 매크로를 사용하면 한 번의 클릭으로 전체 프로세스를 수행할 수 있습니다.
데이터 정렬은 여러 기술을 사용하여 수행할 수 있으며 데이터에 적합한 방법을 선택할 수 있습니다. 다음 섹션에서 이러한 방법을 하나씩 설명합니다.
VBA에서 Range.Sort()
메서드를 사용하여 특정 열을 기준으로 데이터 범위 정렬
Range.Sort()
메서드는 VBA에서 데이터를 빠르게 정렬할 수 있습니다. 그러나 VBA를 통해 데이터를 정렬하는 동안 몇 가지 추가 매개 변수를 정의해야 합니다.
이러한 매개변수에는 Key
, Order
및 Header
가 포함됩니다.
키
- 정렬하려는 열을 지정합니다.주문
- 주문 유형 지정: 내림차순 또는 오름차순.헤더
-헤더
데이터가 정렬 프로세스에 포함되는지 여부를 VBA에 알려줍니다.
B1
~ B13
범위의 코드, B1
열, 오름차순 및 VBA 코드를 사용하는 데이터 헤더가 아래에 표시됩니다.
예:
# VBA
Sub usingRangeSort()
Range("B1:B13").Sort Key1:=Range("B1"), _
Order1:=xlAscending, _
Header:=xlYes
End Sub
출력:
![Range.Sort를 사용하여 VBA에서 정렬](</img/VBA/range.sort.gif>를 사용하여 vba에서 정렬
예제에서 볼 수 있듯이 Range.Sort()
메서드를 사용하여 범위를 정렬할 수 있습니다.
VBA에서 매크로를 기록하여 특정 열을 기준으로 데이터 범위 정렬
VBA 정렬을 위한 매크로 기록은 데이터 정렬에 모든 매개변수를 포함해야 하기 때문에 복잡할 수 있지만 코드가 작업을 수행하는 방법을 보여주기 때문에 도움이 될 수 있습니다. Excel 워크시트에 적용된 이 방법은 아래와 같이 보일 수 있습니다.
예:
# vba
Sub savedMacro()
Range("A1:B13").Sort Key1:=Range("A1"), _
Order1:=xlAscending, _
Header:=xlYes
End Sub
출력:
이 예에서 볼 수 있듯이 매크로를 저장하고 원할 때마다 다른 시트에서 사용할 수 있습니다. 코드는 여러 Excel 워크시트에 적용되는 복사-붙여넣기 프로세스를 쉽게 거칠 수 있으므로 VBA 코딩을 통해 대량 데이터 프로세스를 가속화할 수 있습니다.
VBA에서 단일 수준 정렬을 사용하여 특정 열을 기준으로 데이터 범위 정렬
이 프로세스는 매개변수를 하나씩 포함할 필요가 없고 기본 매개변수를 독립적으로 사용하기 때문에 매우 쉽습니다. 사용자는 기본적으로 관련된 모든 워크시트의 매개변수를 설정해야 합니다.
방법의 샘플이 아래에 나와 있습니다.
# vba
Sub SortWithSingleLevel()
Worksheets("Sheet1").Sort.SortFields.Clear
Range("A1:B13").Sort Key1:=Range("A1"), Header:=xlYes
End Sub
출력:
위의 예에서 볼 수 있듯이 단일 수준 정렬 범위를 사용하여 시트 데이터를 정렬할 수 있습니다. 이제 다중 수준 정렬에 대해 동일한 작업을 수행하려는 경우를 상상해 봅시다.
VBA에서 다중 수준 정렬을 사용하여 특정 열을 기준으로 데이터 범위 정렬
VBA 코드를 통해 데이터를 정렬하는 동안 둘 이상의 수준을 포함할 수 있습니다.
예를 들어 Key1
을 먼저 정렬한 다음 Key2
를 정렬하는 코드를 실행하는 경우입니다. Order1
및 Order2
의 두 가지 주문을 포함합니다. 즉, Order1
은 Key1
과 연결되고 Order2
는 Key2
와 연결됩니다.
코드는 아래와 같이 작동합니다.
# vba
Sub SortWithMultiLevel()
Worksheets("Sheet1").Sort.SortFields.Clear
Range("A1:B13").Sort Key1:=Range("A1"), Key2:=Range("B1"), Header:=xlYes, _
Order1:=xlAscending, Order2:=xlDescending
End Sub
출력:
위의 예에서 볼 수 있듯이 여러 키와 순서를 사용하여 다단계 정렬로 범위를 정렬할 수 있습니다.
VBA에서 다른 매개변수를 사용하여 특정 열을 기준으로 데이터 범위 정렬
이제 VBA에서 정렬에 사용할 수 있는 다양한 매개변수에 대해 설명합니다.
VBA에서 SortOn
매개변수로 데이터 정렬
날짜 정렬 프로세스를 수행하려는 매개변수를 정의합니다. 매개변수는 셀 값, 글꼴 색상 또는 셀(배경) 색상일 수 있습니다.
기본 설정은 셀 값이며 아래와 같이 됩니다.
# vba
SortOn:= xlSortOnValues
VBA에서 Order
매개변수로 데이터 정렬
순서는 오름차순 또는 내림차순으로 선택할 수 있습니다(이전 문서에서 설명한 대로). 그러나 기본 설정은 오름차순이며 구문은 다음과 같습니다.
# vba
Order:= xlAscending
VBA에서 DataOption
매개변수를 사용하여 데이터 정렬
이 매개변수는 VBA 코드가 숫자 및 텍스트 데이터를 정렬하는 방법을 정의합니다. 이 매개변수를 사용하여 숫자와 텍스트를 별도로 정렬할 수 있습니다. 사용되는 구문은 아래와 같습니다.
# vba
DataOption:= xlSortNormal
VBA에서 헤더
매개변수로 데이터 정렬
데이터의 헤더를 정렬 프로세스에 포함할지 여부를 설명합니다. 헤더 정렬
구문은 다음과 같습니다.
# vba
Header:= xlYes
헤더가 없고 처음부터 정렬을 시작하려는 경우 아래 코드를 사용할 수 있습니다.
# vba
Header:= xlNo
VBA에서 MatchCase
매개변수로 데이터 정렬
‘MatchCase’ 정렬은 프로세스가 대소문자를 구분하는지 여부를 정의합니다. MatchCase 정렬
구문은 다음과 같습니다.
# vba
MatchCase:= False
VBA에서 Orientation
매개변수로 데이터 정렬
매개변수는 위에서 아래로 또는 열을 통해 정렬 방향을 정의합니다. 기본 구문은 다음과 같습니다.
# vba
Orientation:= xlTopToBottom