본문 바로가기

VBA/엑사남_기초방86

[기초방] VBA 100제 #9 [ 데이터 영역 선택하기 ] 기초방 #9번 문제는 Offset 의 정확한 이해를 바탕으로 풀이가 가능한 문제이고 기초방 #9-1번 문제는 End 속성값을 통해 풀 수 있는 문제이다. 현재 기초방에서는 최대한 셀 기반으로 문제를 풀어내고 있다. 다른 언어들은 셀기반이 아니고 배열 구조여서 이해하기가 처음엔 어려울수도 있는데, VBA는 내가 하나씩 찍어볼수 있어서 이차원배열과 일차원배열을 이해하는데 더할 나위 없이 좋다.. 할말이 없는데...참...나... 장인어른과 둘만 남아서 억지로 억지로 대화를 이어가는거 같다. 본인 코드에서 자주 등장하는 Cells(rows.count,"a").end(3)(2) 는 A열의 가장 아래에서 위로 컨트롤 윗 화살표를 했을 때 잡히는 셀에서 한칸 아래 부분을 말한다.. 만일 잡힌셀에서 두줄 내려온 영역.. 2023. 1. 5.
[기초방] VBA 100제 #7 [ 행렬변환 ] 왼쪽에 있는 데이터를 오른쪽에 있는 표 테이블에 입력하는 구문 Transpose 쓰기 없기로 했더니...아주 가~~~관이다.. 잔머리님도 모카님 닮아가시는지 함수로 해결해버리셨다. 아~~ 고인물들 딱총님도 약간의 변형을 했지만 결국 엑셀 함수형으로 완성하였다 무지님만이 유일하게 For each 로 풀었다. 풀이를 하자면 찾는 상품명을 찾아서 그것을 Find_Cell로 선언한 후, Find_Cell을 순환하면서 각각의 값들을 셀에 찍는 코드이다. 아무리 트랜스포스를 안쓰려고 해도 이것보다 쉽고 간편한게 없어...슬쩍 트랜스포스 쓰고 달아나려한다. 더보기 Option Explicit Sub 행렬변환A() Dim rngAll As Range: Set rngAll = [ae9:ah9] Dim rngA As Ra.. 2023. 1. 4.
[기초방] VBA 100제 #8 [ 데이터 영역 선택하기 ] 이 문제는 두개의 문제가 혼합되어 있다. 1. 3행씩 반복하며 셀서식 적용하기 2. 한행에 300,000원이 단 한번만 있는 행에 셀 서식입히기 이번 문제를 풀면서 Bln의 스위칭 역할을 좀 더 활용해보도록 하겠다. 본인은 1번문제는 Bln값을 True로 잡았고 / 2번문제는 False로 잡았다. 그럼 이 스위칭의 조건을 어떡해 줄까 생각하다가 매크로 버튼의 텍스트의 변화에 따라 Bln값을 달리하면서 그 Bln 값의 변환에 따라 매크로가 각각의 조건의 맞게 실행하도록 하였다. 마지막엔 1번문제를 실행하였다면 1번이 True니까 False로 전환하고 2번문제는 False 이니까 True로 전환해주면 결국 스위칭 효과가 발생한다. 걸렸다!! If bln = False Then SH.TextFrame.Char.. 2023. 1. 4.
[기초방] VBA 100제 #6 [ 데이터 영역 스위칭 ] 이번 문제는 셀의 움직임을 정확히 알고 있어야 쉽게 제어할 수 있다. 아래행으로 진행다가 자신이 이전셀보다 크다면 출력값에 본인의 값을 출력하고 영역을 스위칭해야 하는 문제이다. A 영역에 있을 경우 결과값에 값을 출력하기 위해서는 A 영역기준 열방향으로 +2를 해야한다. A 영역부터 시작할테니 A영역은 Bln의 초기값인 False 이다 B 영역에 있을 경우 결과값에 값을 출력하기 위해서는 B 영역기준 열방향으로 +1를 해야한다. B 영역으로 스위칭되면 B영역은 Bln값이 True로 스위칭하면 된다. C = IIf(bln = False, 2, 1) '= 해당 영역 기준 A 영역은 +2 / B 영역은 +1 한 영역에 해당 값을 출력하기 위한 상수 A영역 False에서 B로 이동하려면 +1로 이동해야한다. .. 2023. 1. 2.