Lost Information!

엑셀 VBA 기초 - 엑셀 정렬, 매크로만들기 - 1편 본문

개인브랜드블로그를 만들어 보자/엑셀VBA

엑셀 VBA 기초 - 엑셀 정렬, 매크로만들기 - 1편

Lostinformation 2020. 11. 9. 14:19

모두가 칼퇴하는 그날까지~

 

지난 글에서는 

OFFSET를 활용하여

원하는 반에 따라

색상이 변경되는

매크로에 대해  

알려드렸는데요.

 

만일 저번 내용을 모르시거나

기억이 나질 않으신다면

밑에 글을 참고해주세요.

red-s.tistory.com/2439

 

엑셀 VBA 기초 - OFFSET을 활용 해보자 - 2편

모두가 칼퇴하는 그날까지~ 지난 글에서는 offSET를 활용하기 위해 캄보 박스에 설정과 유저 폼을 설정하는 방법을 알려드렸는데요. 만일 저번 내용을 모르시거나 기억이 나질 않으신다면 밑에

red-s.tistory.com


이번 글에서는 

정렬하는 방법에 대해 

매크로로 만드는 방법을

알려드리도록 하겠습니다.

 

정렬이란 

123, 또는 가나다,

abc와 같은 오름차순부터

내림차순 그리고

중복 기준 정렬까지

다양하게 있습니다.

 

이 모든 것에 대해 

이번 글과 다음 글에

나눠서 알려드리겠습니다.

 

먼저 위와 같은 표가 

있다고 가정할게요.

 

그럼 반 기준으로 

1,2,3반 순서로 

오르차 순으로 정렬

하겠습니다.

 

그럼 ALT+F11을 

눌러주세요.

 

그다음 삽입에 

모듈을 추가해주시고

이렇게 적어주시면 됩니다.

 

바로 설명 들어갈게요.

 

Sub sort_test()

정렬 테스트라고 

메크로 이름을 정한다.

 

Dim rngd    As Range

rngd라는 변수를 설정해

 

Set rngd = Range("c6: I26")

rngd는 c6부터 i26까지 

범위를 가지고 있는데

(원하는 데이터의 범위)

 

rngd.Sort Range("d6"), xlAscending, Header:=xlNo

그중에서 d6부터 d열을

오름차순으로 정렬해

 

(header는 첫 번째 행의

제목 여부를 묻는 것인데

xlYes는 제목으로 잡겠다

xlNo는 데이터이다)

 

그리고 저장하고 실행하면

 

이렇게 1반부터 3반까지 

정렬된 모습을 볼 수 있죠.

 

그럼 내림차순으로는 어떻게 

변경할 수 있을까요?

 

크게 추가하는 것 없이 

표시된 부분만

변경해주시면 됩니다.

 

rngd.Sort Range("d6"), xlDescending, Header:=xlNo

 

그렇게 되면

 

 

이렇게 반별로 

내림차순으로 변경되어 

정렬된 것을 확인할 수 있죠.

 

그렇다면 만약 범위를

데이터 표의 이름과 반

과목과 성적까지 잡게 되면

어떻게 해야 할까요?

 

 

그렇다면 범위를 데이터의

제목에 해당되는 이름, 반,

성적까지 범위에 잡아주고

 

header:=xlYes로 변경해주시면

 

이렇게 내가 원하는 데이터가

맨 위에 존재하고 나머지가

오름차순으로 변경되게 됩니다.

 

오름차순이나 내림차순

물론 필터로 할 수도 있지만

제가 알려드리는 이유는 

다른 고급과정 때문이니 

이것도 꼭 알아두셨으면 

좋겠습니다.

 

그럼 이번 글은 여기까지이고요.

 

궁금하신 점은 댓글에 남겨주시고

공감구독도 부탁드립니다.

 

Comments