VBA/엑사남_기초방93 [기초방] VBA 100제 #46 [ 모래시계 알고리즘 ] 이런 류의 문제를 풀기 위해서는 반복될 기초 틀을 하나의 영역으로 잡는것이 가장 중요하다 이 한 블럭만 완성을 하면 그 다음 부터는 순환 반복이기 때문에 큰 어려움이 없을 것이다. 46번은 전형적으로 For each의 움직임을 이해한다면 바로 풀 수 있는 문제이고 46-1은 offset의 움직임을 이해한다면 큰 어려움없이 풀 수 있을 것이다. 본인의 코드를 보고도 이해가 안된다면 아직 셀기반의 움직임을 정확히 이해 못한거니 이참에 움직임을 하나씩 찍어보길 바란다. 더보기 Option Explicit Sub 기초방46() Dim rngAll As Range Dim rngA As Range Dim i&, r& Set rngAll = make_rng([e4]) '= 영역 만들기 [e4:o200].ClearCo.. 2023. 3. 19. [기초방] VBA 100제 #45 [ 반구성하기 ] 2023. 3. 19. [기초방] VBA 100제 #44 [ 각종 통화 할인율 구하기 ] 정규식을 이용한 파씽문제이다. 문제에서 한자리 통화기호 + 금액 / 할인율을 파씽하여 그 결과를 도출하는 문제이다. 처음 본인이 했던것은 1그룹(통화기호 + 금액) / 2그룹(할인률) 이렇게 하여 통화기호를 분리하여 계산후 다시 통화기호를 붙히는 작업을 하였는데, 1그룹(통화기호) + 2그룹(금액) + 3급액(할인률) 이렇게 분리하는게 코드가 좀 더 깔끔할 것 같아 수정하였다. 패턴설명은 이렇다. (1그룹 : 숫자앞에 임의의 한자리)+(2그룹:숫자열) [.+? : 의미없는 문자] +(3그룹: 1자리부터3자리의 숫자와 퍼센트기호) With Mat(0) rngA(1, -2) = .submatches(0) & .submatches(1) '= 통화 기호 + 통화 rngA(1, -1) = .submatches(2.. 2023. 3. 17. [기초방] 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. 이전 1 ··· 10 11 12 13 14 15 16 ··· 24 다음