더보기
본인이 고급필터를 처음 알았을 때 당시에는 Vlookup을 남발하던 시기였던걸로 기억한다.
아무것도 모른채 접한 고급필터는 정말 신세계였던 걸로 기억한다.
고급필터의 단점은 단발성이기 때문에 VBA와의 조합으로 연속적이며 가변적인 움직임을 줄 수 있다.
이번 구문은 이렇다 품목에서 제품에 맞는 각 옵션들을 불러와서
더블 클릭으로 선택한 아이템들이 해당 제품들의 각 위치에 정확히 들어가는 구문이다.
코드는 어렵지 않지만 생각보다 뽀대(?) 나는 작업임을 확신한다.
코드가 너무 쉽고 간단해서 코드 설명은 피하도록 하겠다.
더보기
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim rngD As Range
Dim rngE As Range
Dim rngf As Range
Dim rngX As Range
Dim R&
If [C18] <> "" Then Set rngD = Range([C18], Cells(Rows.Count, "C").End(3))
If [D18] <> "" Then Set rngE = Range([D18], Cells(Rows.Count, "D").End(3))
If [E18] <> "" Then Set rngf = Range([E18], Cells(Rows.Count, "E").End(3))
If Not Intersect(rngD, Target) Is Nothing Then
Set rngX = [b4:b12].Find(what:=[b15], lookat:=xlWhole)
Cells(rngX.Row, Target.Column) = Target
End If
If Not Intersect(rngE, Target) Is Nothing Then
Set rngX = [b4:b12].Find(what:=[b15], lookat:=xlWhole)
Cells(rngX.Row, Target.Column) = Target
End If
If [E18] <> "" Then
If Not Intersect(rngf, Target) Is Nothing Then
Set rngX = [b4:b12].Find(what:=[b15], lookat:=xlWhole)
Cells(rngX.Row, Target.Column) = Target
End If
End If
Cancel = True
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngDAta As Range
Dim rngCri As Range
Dim rngX As Range
If Intersect([b15], Target) Is Nothing Then Exit Sub
With [b17].CurrentRegion.Offset(1)
.Borders.LineStyle = xlNone
.ClearContents
End With
Set rngDAta = Sheets("품목").[a1].CurrentRegion
Set rngCri = Sheets("예약").[b14:b15]
Set rngX = [b17:C17]
'= 고급필터 구간
rngDAta.AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=rngCri, _
CopyToRange:=rngX, _
Unique:=False
Set rngDAta = Sheets("품목").[D1].CurrentRegion
Set rngX = [D17]
rngDAta.AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=rngCri, _
CopyToRange:=rngX, _
Unique:=False
Set rngDAta = Sheets("품목").[G1].CurrentRegion
Set rngX = [E17]
rngDAta.AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=rngCri, _
CopyToRange:=rngX, _
Unique:=False
[d18:f40].Font.Size = 8
End Sub
'VBA' 카테고리의 다른 글
[VBA] 사이즈표 만들기(feat. 더블클릭 이벤트) (0) | 2022.08.26 |
---|---|
[VBA] 나만의 OCR로 세상을 스캔해보자 (0) | 2022.08.11 |
[VBA] 프린트 영역설정 (0) | 2022.07.13 |
[VBA] 코스피 200 가져오기(네이버 증권, Callbyname) (0) | 2022.06.27 |
[VBA] 로또번호 분석하기 (0) | 2022.06.20 |
댓글