Funktionreferenz


_Excel_FilterSet

Beschreibung anzeigen in

Setzt/löscht Filter-Definitionen und filtert den Bereich

#include <Excel.au3>
_Excel_FilterSet ( $oWorkbook, $vWorksheet, $vRange, $iField [, $sCriteria1 = Default [, $iOperator = Default [, $sCriteria2 = Default]]] )

Parameter

$oWorkbook Excel Arbeitsbuch-Objekt
$vWorksheet Name, Index oder Arbeitsblatt-Objekt, das gefiltert werden soll. Wenn das Schlüsselwort Default gesetzt ist wird das aktive Arbeitsblatt gefiltert
$vRange Ein Bereichs-Objekt oder ein A1 Bereich welcher die Spalten angibt, die gefiltert werden sollen.
    Verwendet das Schlüsselwort Default um alle genutzten Spalten für das angegebene Arbeitsblatt zu filtern
$iField Versatz (als Integer) von dem Feld auf welchem der Filter basieren soll (das erste Feld (ganz links) im Range hat den Wert 1).
    Wenn der Parameter auf 0 gesetzt ist werden alle Autofilter entfernt
$sCriteria1 [optional] Das Kriterium (ein Text oder Array von Texten). "=" findet leere Felder, "<>" findet nichtleere Felder.
    Fehlt der Parameter, so wird das Kriterium auf "All" gesetzt.
    Wird $iOperator auf xlTop10Items gesetzt, so gibt das Kriterium die Anzahl der Items an (zum Beispiel ,"10")
$iOperator [optional] Eine der Konstanten der XlAutoFilterOperator Aufzählung, welche den Filtertyp festlegt
$sCriteria2 [optional] Das zweite Kriterium (ein String). Genutzt mit Kriterium 1 und Operator um ein zusammengesetztes Kriterium zu konstruieren

Rückgabewert

Erfolg: 1.
Fehler: 0 und setzt @error.
@error: 1 - $oWorkbook ist kein Objekt oder Arbeitsbuch-Objekt
2 - $vWorksheet Name oder Index ist falsch oder $vWorksheet ist kein Arbeitsblatt-Objekt. @extended ist auf den COM Fehlercode gesetzt
3 - $vRange ist falsch. @extended ist auf den COM Fehlercode gesetzt
4 - Fehler zurückgegeben von der Filtermethode. @extended ist auf den COM Fehlercode gesetzt

Bemerkungen

Dynamischer Filter:
Um Datenspalten zu filtern muss $iOperator auf $xlFilterDynamic und $sCriteria1 auf einen Wert der XlDynamicFilterCriteria Aufzählung gesetzt werden.
Siehe Beispiel 2 für Details.

Verwandte Funktionen

_Excel_FilterGet

Beispiel

Beispiel 1

#include <Excel.au3>
#include <MsgBoxConstants.au3>

; Erstellen des Anwendungsobjektes und Öffnen eines Beispiel Workbooks
Local $oExcel = _Excel_Open()
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_FilterSet Beispiel", "Fehler beim Erstellen des Excel Objektes." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
Local $oWorkbook = _Excel_BookOpen($oExcel, @ScriptDir & "\Extras\_Excel1.xls", True)
If @error Then
    MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_FilterSet Beispiel", "Fehler beim Öffnen des Workbook '" & @ScriptDir & "\Extras\_Excel1.xls'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    _Excel_Close($oExcel)
    Exit
EndIf
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_FilterSet Beispiel", "Enter drücken um den ersten Filter zu setzen!")

; Filtern des gesamten aktiven Arbeitsblatt in Spalte 1.
; Nur Zeilen mit Inhalten >20 und <40 in der angegebenen Spalte anzeigen.
_Excel_FilterSet($oWorkbook, Default, "A1:E30", 1, ">20", 1, "<40")
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_FilterSet Beispiel 1", "Fehler beim Filtern der Daten." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_FilterSet Beispiel 1", "Gefiltert in Spalte 'A'. Nur Zeilen mit Werten >20 und <40 anzeigen.")

; Hinzufügen eines Filters zu Spalte 2.
; Nur Zeilen mit Inhalt <310 in der angegebenen Spalte anzeigen.
_Excel_FilterSet($oWorkbook, Default, Default, 2, "<310")
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_FilterSet Beispiel 2", "Fehler beim Filtern der Daten." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_FilterSet Beispiel 1", "Filter auf Spalte 'B' hinzugefügt. Nur Zeilen mit Werten <310 anzeigen.")

; Filter aus Spalte 1 entfernen.
_Excel_FilterSet($oWorkbook, Default, Default, 1)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_FilterSet Beispiel 3", "Fehler beim Filtern der Daten." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_FilterSet Beispiel 1", "Filter aus Spalte 'A' entfernt.")

; Nur ausgewählte Werte (20, 40 und 60) der Spalte 2 anzeigen.
Local $aShow[] = ["20", "40", "60"]
_Excel_FilterSet($oWorkbook, Default, Default, 2, $aShow, $xlFilterValues)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_FilterSet Beispiel 4", "Fehler beim Filtern der Daten." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_FilterSet Beispiel 1", "Filter in Spalte 'B' so einstellen, dass nur ausgewählte Werte (20, 40 und 60) angezeigt werden.")

; Entfernen aller Filter.
_Excel_FilterSet($oWorkbook, Default, Default, 0)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_FilterSet Beispiel 5", "Fehler beim Filtern der Daten." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_FilterSet Beispiel 1", "Alle Filter entfernt.")

Beispiel 2

#include <Excel.au3>
#include <MsgBoxConstants.au3>

; Erstellen des Anwendungsobjektes und Öffnen eines Beispiel Workbooks
Local $oExcel = _Excel_Open()
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_FilterSet Beispiel", "Fehler beim Erstellen des Excel Objektes." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
Local $oWorkbook = _Excel_BookOpen($oExcel, @ScriptDir & "\Extras\_Excel1.xls", True)
If @error Then
    MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_FilterSet Beispiel", "Fehler beim Öffnen des Workbook '" & @ScriptDir & "\Extras\_Excel1.xls'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    _Excel_Close($oExcel)
    Exit
EndIf
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_FilterSet Beispiel", "Enter drücken um den ersten Filter zu setzen!")

; Filtern der Spalte M nach Datum. Alle Termine im Oktober 2013 und 2014 anzeigen.
; 0-Jahr, 1-Monat, 2-Tag, 3-Stunde, 4-Minute, 5-Sekunde
Local $aShow[] = [1, "01/10/2013", 1, "01/10/2014"]
_Excel_FilterSet($oWorkbook, Default, Default, 13, Default, $xlFilterValues, $aShow)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_FilterSet Beispiel 6", "Fehler beim Filtern der Daten." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_FilterSet Beispiel 2", "Spalte 'M' gefiltert nach Datum. Alle Termine im Oktober 2013 und 2014 anzeigen.")

; Filtern der Spalte M nach Datum. Alle Daten des letzten Jahres anzeigen.
_Excel_FilterSet($oWorkbook, Default, Default, 13, $xlFilterLastYear, $xlFilterDynamic)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_FilterSet Beispiel 7", "Fehler beim Filtern der Daten." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_FilterSet Beispiel 2", "Spalte 'M' gefiltert nach Datum. Alle Daten des letzten Jahres anzeigen.")