본문 바로가기

고급필터3

[기초방] VBA 100제 #75 [ 필터링 구현하기 ] 이러한 문제를 VBA로 풀려면 이벤트 + 고급필터로 풀면된다. 앞서 이러한 문제는 많이 했기 때문에 찾아보면 이해가 금방갈 것이다. 이벤트 구간이다. 이벤트의 영역을 구한 후 이벤트 영역에 TARGET이 들어올때만 작동하게 된다. 출력 영역을 초기화 하고, 입력된 이벤트구간에서 입력을 마치면 엔터를 치게 되면 다음줄로 영역이 내려가는데 TARGET.ACTIVATE를 하게 되면 트릭으로 다음줄로 내려갔다가 다시 복귀를 하게 되어 마치 제자리에 있는것처럼 보이게 된다. 이렇게 불러진 기초방75코드를 보자 바로 고급필터 조건을 정한 후, 고급필터를 실행해도 되지만 그럴경우 고급필터의 내용이 아무것도 없을 때는 출력이 되지 않는다. 더보기 Option Explicit Sub 기초방75() Dim rngAll A.. 2023. 10. 16.
[기초방] VBA 100제 #42 [ 고급필터 ] 데이터를 새롭게 추가하고 또한 검색을 하는 이벤트 문제이다. 각 시트에 해당하는 이벤트들은 해당시트에서 한번만 사용가능하므로 여러가지 또는 여러 영역에서 이벤트를 발생하려면 Boolean을 통해서 KEY 역할을 하게 하여 적지적소에 이벤트를 발생시켜야 한다. 이 구문은 이렇다. 데이터 영역과 검색 영역이 있는데, 데이터 영역에는 모든 데이터가 입력되었을 때 이벤트가 발생해야 하고, 고급필터의 검색 영역은 일부 검색어 일치에 반응해야 함으로 이를 억지로 하나로 묶어버리면 의도한대로의 이벤트가 발생하지 않는다. 그렇기 때문에 Bln으로 영역을 양분해서 각각의 상황에 맞게 이벤트를 발생시키면 된다. If Not Intersect(rngS, Target) Is Nothing Then bln = True '= 검.. 2023. 3. 16.
[VBA] 고급필터를 이용한 옵션선택 더보기 본인이 고급필터를 처음 알았을 때 당시에는 Vlookup을 남발하던 시기였던걸로 기억한다. 아무것도 모른채 접한 고급필터는 정말 신세계였던 걸로 기억한다. 고급필터의 단점은 단발성이기 때문에 VBA와의 조합으로 연속적이며 가변적인 움직임을 줄 수 있다. 이번 구문은 이렇다 품목에서 제품에 맞는 각 옵션들을 불러와서 더블 클릭으로 선택한 아이템들이 해당 제품들의 각 위치에 정확히 들어가는 구문이다. 코드는 어렵지 않지만 생각보다 뽀대(?) 나는 작업임을 확신한다. 코드가 너무 쉽고 간단해서 코드 설명은 피하도록 하겠다. 더보기 Option Explicit Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean).. 2022. 8. 4.