Setzt/löscht Filter-Definitionen und filtert den Bereich
#include <Excel.au3>
_Excel_FilterSet ( $oWorkbook, $vWorksheet, $vRange, $iField [, $sCriteria1 = Default [, $iOperator = Default [, $sCriteria2 = Default]]] )
$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 |
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 |
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.
#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.")
#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.")