Excel 자동 필터를 VBA로 조금 편리하게

3569 단어 VBAExcelExcelVBA

사용법



자동 필터가 적용된 시트에서 필터링하려는 값의 셀을 선택하고,
키보드의 [END] 키를 누르면 부분 일치로 필터링
다시 누르면 해제



코드



ThisWorkbook.cls
Option Explicit

Private Sub Workbook_Open()
    Application.OnKey "{END}", "ThisWorkbook.FilterOnOff"
End Sub

Sub FilterOnOff()
    Dim a As AutoFilter, c As Long, v As String
    With ActiveCell
        Set a = .Parent.AutoFilter
        If a Is Nothing Then Exit Sub
        c = .Column - a.Range.Column + 1
        If c < 1 Or a.Filters.Count < c Then Exit Sub
        v = "*" & .Value & "*"
    End With
    With a
        If .Filters(c).On Then
            .Range.AutoFilter c
        Else
            .Range.AutoFilter c, v
        End If
    End With
End Sub

좋은 웹페이지 즐겨찾기