Skip to content

AdvanceFilter

Use Advance Filter without Copy any data

Sub AdvanceFilterInPlace()

    Dim dataRange As Range
    Dim criteriaRange As Range

    Set dataRange = Sheet1.Range("A4").CurrentRegion
    Set criteriaRange = Sheet1.Range("A1").CurrentRegion

    dataRange.AdvancedFilter xlFilterInPlace, criteriaRange
End Sub

Use Advance Filter with Copy Data to another range

Sub AdvanceFilterCopy()
    'Clear Previous Data First
    Sheet1.Range("G1").CurrentRegion.ClearContents

    Dim dataRange As Range
    Dim criteriaRange As Range
    Dim outputRange As Range

    Set dataRange = Sheet1.Range("A4").CurrentRegion
    Set criteriaRange = Sheet1.Range("A1").CurrentRegion

    'We Can Also Copy data to another sheet
    Set outputRange = Sheet1.Range("G1")
    dataRange.AdvancedFilter xlFilterCopy, criteriaRange, outputRange
End Sub

References - Macro Mastery