In diesem Artikel erstellen wir ein Makro, um die im automatischen Filter verwendeten Kriterien anzuzeigen.

Rohdaten bestehen aus Kundendaten, einschließlich Name, Telefonnummer, E-Mail-ID und Firmenname.

ArrowRawData

Wir haben einen Filter in der Spalte Firma angewendet und möchten nun den Namen der Firma bestimmen, auf die der Filter angewendet wird.

ArrowFilterData

Wir klicken auf die Schaltfläche „Filterdaten trennen“, um die Kriterien abzurufen, für die der Filter angewendet wird.

ArrowOutput

Code Erklärung

IntRow = Range („A10“). CurrentRegion.Rows.Count + 12 Der obige Code wird verwendet, um eine Zeilennummer abzurufen, in der die Ausgabe angezeigt werden soll.

ActiveSheet.AutoFilter.Filters (IntCol) .On Mit dem obigen Code wird überprüft, ob der Filter auf die jeweilige Spalte angewendet wird.

Für jeden StringValue in .Criteria1 MainString = MainString + Mid (StringValue, 2) + „|“

Weiter Mit dem obigen Code wird eine Zeichenfolge erstellt, die aus allen im Filter verwendeten Kriterienwerten besteht.

Bereich („A10“). CurrentRegion.SpecialCells (xlCellTypeVisible) .Copy _ Cells (IntRow + 1, 1)

Der obige Code wird verwendet, um sichtbare Zeilen an das angegebene Ziel zu kopieren.

Bitte folgen Sie unten für den Code

Option Explicit

Sub FilterCriteria()

'Declaring variables

Dim IntRow, IntCol As Integer

Dim MainString, StringValue As Variant

'Initializing the row and column number

IntRow = Range("A10").CurrentRegion.Rows.Count + 12

IntCol = 1

'Looping through all the cells until blank cell is encountered in the 10th row

Do Until IsEmpty(Cells(10, IntCol))



With ActiveSheet.AutoFilter.Filters(IntCol)

'Checking whether filter is applied on the column

If .On Then



MainString = "Filter On Column no. " & IntCol & " on values : "



'Creating text which consists of values used in the filter

For Each StringValue In .Criteria1

MainString = MainString + Mid(StringValue, 2) + "|"

Next



'Assigning value to cell

Cells(IntRow, 1).Value = MainString



Exit Do



End If



End With



IntCol = IntCol + 1

Loop

'Copying the visible cells to row after the filter data

Range("A10").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy _

Cells(IntRow + 1, 1)

End Sub

Wenn dir dieser Blog gefallen hat, teile ihn mit deinen Freunden auf Facebook und Facebook.

Wir würden gerne von Ihnen hören, lassen Sie uns wissen, wie wir unsere Arbeit verbessern und für Sie verbessern können. Schreiben Sie uns unter [email protected]