Excel에서 VBA를 사용하여 범위를 정렬하는 방법(예제 6개)

  • 이 공유
Hugh West

Excel에서 VBA를 사용하여 범위를 정렬하는 방법을 알면 일일 계산에서 시간과 노력을 절약할 수 있습니다. Excel은 기본적으로 정렬 기능을 제공하지만. Range.Sort 방법 을 사용하여 여러 매개변수에 액세스하여 평소보다 더 많은 옵션으로 데이터 세트를 정렬합니다.

실습 워크북 다운로드

이 기사를 읽는 동안 연습할 이 실습 통합 문서를 다운로드하십시오.

Excel.xlsm의 정렬 범위

Excel VBA

의 Range.Sort 문 소개 목표: 셀 데이터의 범위를 정렬합니다.

구문:

.정렬 ( 키1 , 주문1 , 키2 , 유형 , 주문2 , 키3 , 주문3 , 헤더 , 주문맞춤 , MatchCase , Orientation , SortMethod , DataOption1 , DataOption2 , DataOption3 )

여기서 범위 객체, 즉 셀, 행, 열 또는 셀 선택을 나타냅니다.

인수:

Range.Sort 방법에 대해 세 가지 주요 매개변수를 제공해야 합니다.

– 정렬해야 하는 단일 또는 여러 열의 셀 범위입니다.

주문 – 정렬 순서를 지정합니다. 오름차순 또는 내림차순.

헤더 – 정렬할 열에 헤더가 있는지 여부를 선언합니다.

6 Excel VBA<2에서 정렬 범위에 대한 예>

에서이 기사에서는 데이터 세트로 생년월일과 나이가 있는 사람들의 이름 목록을 사용합니다. 데이터 세트를 정렬하기 위해 다른 방법을 적용할 것입니다. 기사를 통해 이러한 방법을 마스터하기 위해 연습해 봅시다.

1. Excel VBA를 사용하여 단일 열 범위 정렬

이 예에서는 가장 오래된 에서 가장 어린 사람까지 정렬 합니다. . 단계에 따라 범위 . 정렬 방법 을 사용하여 에서 나이 열 정렬 합니다>내림차순 .

단계:

  • Excel 리본<2에서 개발자 탭 으로 이동합니다> Visual Basic

  • 클릭 한 다음 모듈 옵션<2을 선택합니다> 삽입 탭 에서 새 모듈 을 엽니다.

이제 코드를 정렬 Age 열 범위.

1.1 Column with Header

비주얼 코드 편집기에 다음 코드를 입력합니다.

6253

F5 를 누르거나 실행 버튼을 클릭하여 코드를 실행 합니다.

설명:

위 코드에서-

Expression (Range object)=Range(“D4:D11”); 셀 D4 헤더 가 있는 나이 열 D5:D11에 :D11.

키 = 범위(“D4”); 정렬을 위한 .

Order= xlDescending; 원하는 대로 값을 가장 큰 에서 가장 낮은 값으로 정렬 순서를 설정합니다. as descending.

Header =xlYes; 다음 스크린샷에서 데이터세트 임을 알 수 있습니다. 각 열에 대한 헤더 .

1.2 헤더 없는 열

다음을 입력합니다. 비주얼 코드 편집기에서 코드를 입력하세요.

7224

F5 를 누르거나 실행 버튼을 클릭하여 코드를 실행 하세요.

설명:

위 코드에서-

Expression (Range object)=Range(“D4 :D10"); 헤더 가 없는 age 열 에는 D4:D10.

키의 값이 있습니다. = 범위("D4"); 정렬을 위한 .

Order= xlDescending; 가장 큰 값 에서 가장 낮은 값으로 정렬 하기 위해 정렬 순서 내림차순으로 설정합니다.

Header =xlNo; 다음 스크린샷에서 데이터세트 헤더가 없음을 확인할 수 있습니다.

관련 콘텐츠: 데이터를 혼합하지 않고 Excel에서 열을 정렬하는 방법(3가지 방법)

2. VBA 코드를 사용하여 Excel에서 여러 열 범위 정렬

여러 열 에서 정렬을 표시하려면 수정 해야 합니다. 1>dataset 약간. 몇 개의 삽입 했습니다. 수정된 데이터세트에서 행 7, 8, 9 생년월일 연령에 대해 동일한 값을 갖습니다. 하지만 세 개의 다른 이름 입니다. 이러한 이름 은 특정 순서로 있지 않습니다. 오름차순 또는 내림차순.

이 예에서는 이름을 오름차순 으로 정렬합니다. Visual Basic 편집기에서 다음 코드를 실행해 보겠습니다.

2343

설명:

위에서 스크린샷에서 열 D 의 연령이 내림차순 순으로 정렬 된 것을 볼 수 있습니다. 이전 코드에서 두 개의 매개변수 를 더 추가했습니다.

Key2: =Range(“B4”) , 이름을 정렬하는 키입니다.

Order2: =xlAscending , 짧은 이름 에 대한 order 입니다.

결과적으로 이름 이(가) 표시됩니다. 행 7, 8, 9 가 이제 알파벳순으로 오름차순 정렬됩니다.

다음 스크린샷에서 Order2 매개변수 의 값 내림차순 순서로 이름 정렬 합니다.

자세히 보기: Excel에서 여러 열을 정렬하는 방법(5가지 빠른 접근 방법)

3. Excel VBA에서 열 범위를 정렬하려면 머리글을 두 번 클릭하십시오.

Excel의 기본 정렬 기능은 열의 을 <1로 정렬하는 것을 허용하지 않습니다> 열 머리글 을 두 번 클릭합니다. 그러나 VBA 코드를 사용하면 가능합니다. 다음 코드를 적용하여 이 기능을 설명하겠습니다.

4826

이 코드에서는 BeforeDoubleClick 이벤트 를 사용하여 일반적인 더블 클릭<2을 비활성화했습니다> 셀의 편집 모드를 시작합니다. 이번 이벤트로실행 중 열 헤더 두 번 클릭 하면 열 데이터가 오름차순 으로 정렬됩니다.

자세히 보기: VBA를 사용하여 Excel에서 열을 정렬(4가지 방법)

유사 읽기:

  • 엑셀에 정렬 버튼을 추가하는 방법(7가지 방법)
  • 엑셀에서 고유 목록을 정렬하는 방법(10가지 유용한 방법)
  • 방법 Excel VBA에서 정렬 기능 사용(적합한 예 8개)
  • Excel에서 중복 항목 정렬(열 및 행)
  • Excel에서 임의 정렬( 수식 + VBA)

4. Excel VBA를 사용하여 배경색을 기준으로 열 범위 정렬

배경색 을 기준으로 열의 셀 범위를 정렬할 수 있습니다. . 이렇게 하려면 값 xlSortOnCellColor 가 있는 SortOn 이라는 매개변수 추가 해야 합니다. 정렬을 시연하기 위해 먼저 데이터세트 의 행에 다른 배경색 을 설정합니다.

그런 다음 시각적 기본 코드 편집기 다음 코드를 복사하고 F5 를 눌러 실행합니다.

3918

다음 스크린샷에서 정렬된 데이터세트 를 기반으로 볼 수 있습니다. 배경색에.

설명:

  • 이 예에서는 워크시트의 이름을 <2로 지정했습니다>" 배경 ". 따라서 코드에서 " background "를 활성 워크시트 이름으로 지정합니다.
  • B4 키로 설정했습니다. B4:D10 범위 . 이 코드는 키를 기준으로 데이터를 정렬합니다.
  • 헤더 매개변수 를 지정하지 않았기 때문에 코드는 기본 헤더 없음
  • 에 대해 실행됩니다.
  • order 매개변수를 오름차순으로 설정하여 낮은 값에서 높은 값으로 데이터를 정렬했습니다 .

자세히 보기: 엑셀 색상별 정렬 방법(4가지 기준)

5. VBA 코드를 적용하여 글꼴 색상을 기준으로 열 범위 정렬

VBA 코드를 적용하면 글꼴 색상 을 기준으로 데이터 세트를 정렬할 수 있습니다. 먼저 예를 설명하기 위해 다른 행에 색상을 지정 해야 합니다.

아래 코드를 적용하여 글꼴 색상을 기준으로 데이터세트를 정렬합니다.

8809

설명:

  • 이 예를 들어 워크시트 " 글꼴 색상 "의 이름을 지정했습니다. 따라서 코드에서 " fontcolor "를 활성 워크시트 이름으로 지정합니다.
  • B4 키로 설정했습니다. B4:D11 범위 로 지정합니다. 코드는 키를 기준으로 데이터를 정렬합니다.
  • 이 예에서는 헤더 매개변수도 xlYes 로 지정했습니다.
  • 여기서 순서를 설정했습니다. 매개변수를 오름차순으로 낮은 값에서 높은 값으로 데이터를 정렬했습니다 .
  • SortOn 매개변수의 값은
  • 방향 매개변수 는 값 xlTopToBottom 을 필수 항목으로 보유합니다. 정렬할
  • 색상 는 RGB 용어입니다. 가치가 있다 0 에서 255 .

더 읽기: 일치하도록 Excel에서 두 열을 정렬하는 방법(둘 다 정확함) 및 부분 일치)

6. Excel VBA를 사용하여 방향을 정렬 범위로 변경

방향 매개변수를 사용하여 데이터 정렬 방식을 변경할 수 있습니다. 이 예에서는 데이터세트를 바꾸고 데이터세트를 정렬 수평으로 합니다.

Visual Basic 편집기에서 다음 코드를 입력하고 F5 키를 눌러 실행합니다.

9259

여기서 나이 행 <을 기준으로 데이터를 정렬 했습니다. 2> 오름차순 왼쪽 에서 오른쪽 순서로. 코드에서 방향 매개변수를 xlSortRows 로 설정합니다.

관련 콘텐츠: Excel에서 여러 열을 자동 정렬하는 방법 (3가지 방법)

기억할 사항

  • 정렬<2에 사용한 SortOn 매개변수 > 배경색 글꼴 색상 을 기반으로 하는 열 범위는 워크시트 개체 에서만 사용할 수 있습니다. 범위 개체 와 함께 사용할 수 없습니다.
  • BeforeDoubleClick 이벤트 는 데이터를 오름차순으로만 정렬합니다.

결론

이제 Excel에서 VBA를 사용하여 범위를 정렬하는 방법을 알았습니다. 바라건대, 이것은 당신이 이것을 더 자신있게 사용하도록 격려할 것입니다. 질문이나 제안 사항이 있으시면 아래 댓글 상자에 남겨주세요.

Hugh West는 업계에서 10년 이상의 경험을 가진 고도로 숙련된 Excel 트레이너이자 분석가입니다. 그는 회계 및 재무 학사 학위와 경영학 석사 학위를 보유하고 있습니다. Hugh는 교육에 대한 열정을 가지고 있으며 따라하기 쉽고 이해하기 쉬운 독특한 교수법을 개발했습니다. Excel에 대한 그의 전문 지식은 전 세계 수천 명의 학생과 전문가가 자신의 기술을 향상시키고 경력에서 탁월하도록 도왔습니다. Hugh는 자신의 블로그를 통해 자신의 지식을 전 세계와 공유하고 개인과 기업이 잠재력을 최대한 발휘할 수 있도록 무료 Excel 자습서 및 온라인 교육을 제공합니다.