본문 바로가기

find5

[기초방] VBA 100제 #59 [ 불일치 영역 색칠하기 ] 기초방 58번에서 언급했듯. 59번 코드가 정석이다. 이유는 58은 성명이 하나인 곳에서 에러를 발생할 것이며, 속도 또한 59번보다 느릴것이다. 영역을 순환하는 것보다. find로 바로 바로 찍어서 영역을 합치기 때문에 데이터 양이 많다면 분명 더 효과적일것이다.' haja_find 함수의 find구문은 일정부분 루틴이 있는 것이기 때문에 반드시 기억하길 바란다. 더보기 Option Explicit Sub 기초방59() Dim rngAll As Range: Set rngAll = [m5:s25] Dim rngA As Range, rngC As Range Dim strFind$ For Each rngC In rngAll.Columns For Each rngA In rngC.Cells If rngA = ".. 2023. 8. 1.
[VBA] Find + Intersect를 통해서 원하는값만 출력하기 원하는 값을 포함하는 영역만 따로 출력하는 문제이다. 여기서 핵심은 Intersect를 통해서 교집합 영역을 추출하는것이다. 이것만 이해하면 본인의 코드를 충분히 이해할 수 있을 것이다. 포기하지 않은 자들이여...신의 가호가... 더보기 Option Explicit Sub Find_Num() Dim rngAll As Range: Set rngAll = [b5:g18] '= 전체영역 Dim rngF As Range '= Find 셀을 담을 영역 Dim rngAdrss$, n&, i& Dim Vall(1 To 100) '= 임의의 크기의 배열을 설정 Dim rngX As Range: Set rngX = [i5] With rngAll Set rngF = .Find(What:=7, Lookat:=xlWhole.. 2022. 12. 15.
[VBA] Find와 Replace로 판매갯수 구하기 예전에 이런 문제를 구할때는 다중 for문을 사용하거나 다중 for each로 쓰곤 했다. 판매자를 모두 분리한 후 각각의 이름을 순환하면서 해당 이름이 맞으면 그 자리에 판매수량을 출력하는 코드이다. 조금 복잡할 수 있는 코드이다. 만일 다중 for 문을 사용하려고 했다면.... 앞으로 이런 문제는 find를 사용하면 수월할거다.... 코드가 간결해지거나 더 빠른 속도 처리를 원한다면 최대한 for문을 줄여라 또한 for문 대신 For each를 사용해라....그래야 컬렉션에서 개체를 순환하면서 값을 도출하기도 편하다.... 2021. 11. 23.
[VBA_find] 출근부 작성하기 출근부 작성하는 것을 엑셀로 물어보신 분이 계셔서 예전에 한번 엑셀 수식으로만 만들어 드린적이 있는데 이걸 매크로로 만들어 보도록 하겠다. 메인으로 사용된 것은 Find이다. Find는 셀 기반으로 작업을 할 경우 모르면 FOR문 몇개를 반복하며 작업을 해야 한다. FIND를 사용할 때 크게 3개로 나눈다. 1. DO LOOP / FOR문으로 감싸서 하고자 하는 작업을 반복한다 2. FIND조건에 맞는 값을 찾고 그 첫 값을 문자형 변수에 담는다. 3. DO LOOP를 한번더 감싸서 FINDNEXT로 FIND작업을 더이상 찾을 값이 없거나 첫주소까지 이를때까지 계속 반복한다. FIND는 이 구문만 기억하면 본인들이 하고 싶은 퍼포먼스를 충분히 만들수 있다. FOR문과 FIND의 차이는 FOR문은 끝까지 .. 2021. 8. 28.