본문 바로가기

VBA280

[VBA] 딕셔너리 배열로 대체하기 딕셔너리를 두고 자꾸 왜 뻘짓을 하는지... 딕셔너리를 대체하는 배열을 만들어 보았다... 데이터가 많으면 컴이 뻗어 버린다.... 딕셔너리 열심히 하자... Option Explicit Sub Haja_딕셔너리_대체() Dim vall: vall = Range([c3], [c3].End(2).End(4)) '= 영역설정 Dim Va, Vresult() '= 결과 배열과 개체순환배열 Dim Str '= 배열의 index 위치값 Dim n&, i&, r&: r = 1 '= 결과 배열과 전체배열의 반복 변수 Dim Cmax&: Cmax = 2 '= 결과 배열의 전체 열너비 크기 [j2].CurrentRegion.Clear '= 초기화 ReDim Vresult(1 To UBound(vall, 1), 1 To .. 2022. 4. 8.
[VBA] ArrayList 로 배열 고유값과 중복 횟수 구하기 https://1stminokingdom.tistory.com/84 [VBA] 배열을 정렬해라(feat. 버블정렬) https://1stminokingdom.tistory.com/83 [VBA] 배열내 중복된 값들을 도출하고 중복값을 구해라 배열 또는 셀의 영역 데이터 중 고유값을 구하고 중복된 값을 구하는 것은 보통 딕셔너리로 구한다. 또는 어레 1stminokingdom.tistory.com 이전 글에는 배열의 고유값을 구한 뒤에 버블정렬을 통한 배열의 정렬 방법을 알아보았다. 버블정렬은 글에서도 서술했듯이 쉽지만 비효율적인 코드이다. 단적으로 정렬을 위해 고유값끼리의 비교를 하기 위해 For문을 순환하게 되는데 For문이 다중 포문이기 때문에 처리 속도가 현저히 떨어진다. 본 코드는 ArrayLis.. 2022. 4. 8.
[VBA] 배열을 정렬해라(feat. 버블정렬) https://1stminokingdom.tistory.com/83 [VBA] 배열내 중복된 값들을 도출하고 중복값을 구해라 배열 또는 셀의 영역 데이터 중 고유값을 구하고 중복된 값을 구하는 것은 보통 딕셔너리로 구한다. 또는 어레이리스트나 컬렉션으로 구하는게 대부분이다. 본인의 VBA 뮤즈인 준빠님께서 질문 1stminokingdom.tistory.com 배열의 고유값을 가져오는 코드에서 이 고유값을 순서대로 정렬하는 코드를 추가하였다. 버블 정렬은 코드 구현은 쉽지만 그만큼 비횽율적인 코드이다. 하지만 가장 대중적으로 사용하는 코드이다. 버블정렬이란 다음 시간에는 금일한 배열내 고유값과 정렬하기를 ArrayList로 어떻게 쉽게 구현할 수 있는지 살펴보도록 하겠다. 오늘의 코드 길이를 잘 기억해 두.. 2022. 4. 6.
[VBA] 배열내 중복된 값들을 도출하고 중복값을 구해라 배열 또는 셀의 영역 데이터 중 고유값을 구하고 중복된 값을 구하는 것은 보통 딕셔너리로 구한다. 또는 어레이리스트나 컬렉션으로 구하는게 대부분이다. 본인의 VBA 뮤즈인 준빠님께서 질문을 올렸다. 고유값을 구하고 그 중복횟수를 구하는 것은 딕셔너리로 구해왔기 때문에 너무나 당연하게 나올 코드 말고 배열로만 그 고유값과 횟수를 구하라는 숙제이다. 배열로 구할 수 있는 방법은 소스 영역을 반복할 For문과 결과값에 추가하면서 그값이 기존 결과 배열에 있는지 확인하는 For문을 구하는 다중 For문을 이용해서 비교해가며 값을 추가해야 한다. 하지만 이렇게 되었을 경우 소스 영역이 많아지면 결과값에서 비교하는 자체로 시간이 소요가 된다. 순차적으로 For문을 타는 방식이 아닌 Find나 Search처럼 해당값.. 2022. 4. 6.