본문 바로가기

typename2

[기초방] VBA 100제 #43 [ 조합 정렬하기 ] 기초 43의 나열된 문자열에서 숫자들을 하나식 가져와서 고유값과 그 중복된 값을 구하는 구문이다. 이런 구문의 문제는 딕셔너리나 어레이리스트 같은 오브젝트 개체로 구하는 것이 더 간단하다.. 하지만 우린 지금 셀기반 기초코드로 문제를 풀어야 하기 때문에 applicaton.match와 typename 으로 풀어보도록 하자 mid(rngX, i, 1) 로 구해진 숫자는 TypeName이 String으로 도출됨으로 Clng로 String 타입을 Long 타입으로 변경해줘야 한다. If TypeName(Application.Match(CLng(Mid(rngX, i, 1)), [e6:e20], 0)) = "Error" Then Cells(Rows.Count, "e").End(3)(2) = Mid(rngX, i,.. 2023. 3. 16.
[VBA] 배열내 중복된 값들을 도출하고 중복값을 구해라 배열 또는 셀의 영역 데이터 중 고유값을 구하고 중복된 값을 구하는 것은 보통 딕셔너리로 구한다. 또는 어레이리스트나 컬렉션으로 구하는게 대부분이다. 본인의 VBA 뮤즈인 준빠님께서 질문을 올렸다. 고유값을 구하고 그 중복횟수를 구하는 것은 딕셔너리로 구해왔기 때문에 너무나 당연하게 나올 코드 말고 배열로만 그 고유값과 횟수를 구하라는 숙제이다. 배열로 구할 수 있는 방법은 소스 영역을 반복할 For문과 결과값에 추가하면서 그값이 기존 결과 배열에 있는지 확인하는 For문을 구하는 다중 For문을 이용해서 비교해가며 값을 추가해야 한다. 하지만 이렇게 되었을 경우 소스 영역이 많아지면 결과값에서 비교하는 자체로 시간이 소요가 된다. 순차적으로 For문을 타는 방식이 아닌 Find나 Search처럼 해당값.. 2022. 4. 6.