본문 바로가기
VBA

[VBA] 사용자정렬(ArrayList)_feat(평택_호텔관리_딱총)

by 일등미노왕국 2022. 12. 25.

본인이 ArrayList 찬양을 외치고 다니는데 이 철옹성 같은 엑사남 오픈채팅방에서 드디어 응답이 왔다.

https://open.kakao.com/o/glXWEB3b

 

유튜브 '엑사남'의 Excel VBA 함께하기

[방암호 : M으로 시작하는 VBA 메세지창 명령어는? 'MsgB**', 힌트 : 6글자, **은 소문자] #엑셀 #excel #VBA #엑사남

open.kakao.com

해서 딱총님이 풀어낸 구문으로 같은 문제를 풀어보려고 한다.

 

실은 이문제는 문제가 하나 있었다. 준빠님의 출근일중에서 본인이 일부러 출근일 중복을 하나 첨가한적이 있다.

바로 29일인데 이중복값이 표기가 되었다.

해서 이 구문은 현재 

rngAll.RemoveDuplicates Array(1, 2), xlYes     '=  중복값 제거 / 헤더 있음

이렇게 수정되었다. Array(1,2)는 중복값제거가 여러 열일때 해당 열을 배열화 해서 표기 하면 되며, 뒤에 Xlyes는 헤더값의 유무를 표기한것이다.

 

다시 딱총님 코드를 보도록하자

딱총님 구문을 보고 재미있는걸 알아냈다.

보통 셀기반에서 순환을 할때 for i =1 to cells(rows.count,"a").end(3) 같이 마지막값을 찾아내는데...

 

rngA = [a4:b13]
for i = 1 to Ubound(rnga, 1)


next i

이렇게 영역의 끝을 표기 하였다.. 음 신선하다...본인도 이제 종종 애용하려고 한다..ㅋㅋ

 

역시 배움에는 끝이 없다.

Clng는 String Type을 Long으로 변경하는 코드인건 저번시간에 다뤘기 때문에 넘어가도록 하겠다.

개별적으로  ArrayList 로 중복제거 및 정렬을 한 후 결과 배열에 하나씩 담아서 배열로 뿌리는 코드이다. 

 

본인코드 보다는 훨씬 더 깔끔하다. 물론 본인코드는 한방에 사용자 정렬과 중복제거를 하기에 본인 역시 배열에 담아서 뿌렸다면 훨씬 더 빠르겠지만 연구 목적이 아니라면 본인은 사용자정렬이 아닌 분명 딱총님처럼 풀어냈을 것이다.

 

음메 내새끼~~~~

 

이번 글을 딱총님께 본인의 티스토리에 포스팅을 해도 되는지 여쭈었을 때 

'영광'이라고 하였다. 처음엔 무슨 영광까지일까 했는데 가만히 생각하니 엑사남님께서 운영중인 유튜브 채널에 본인의 티스토리를 언급해도 되는지 물었을 때 본인 역시 '제가 더 영광이죠. 볼것도 없는데..' 라고 했던 기억이 있다.

 

선한 영향력이 있다면 이런것을 말하는것이 아닐까 한다.

 

동행을 하는 엑사남  크루 모두가 함께 대한민국의 VBA 수준을 상향 평준화 하는데 함께 나아가길 희망한다.

 

 

 

 

출근부(딱총첨부).xlsm
0.03MB

 

 

 

 

댓글