HotXLS-documentatie

ApplyAutoFilter methode

Stelt een klassiek XLS AutoFilter-bereik in en past een criterium per veld toe in één aanroep

Syntaxis

procedure ApplyAutoFilter(ARange: WideString; Field: Integer; Criteria1: Variant); overload;
procedure ApplyAutoFilter(ARange: WideString; Field: Integer; Criteria1: Variant; Operator: XlAutoFilterOperator; Criteria2: Variant); overload;
procedure ApplyAutoFilter(ARow1, ACol1, ARow2, ACol2: Integer; Field: Integer; Criteria1: Variant); overload;
procedure ApplyAutoFilter(ARow1, ACol1, ARow2, ACol2: Integer; Field: Integer; Criteria1: Variant; Operator: XlAutoFilterOperator; Criteria2: Variant); overload;

Opmerkingen

De string-overload accepteert een bereik in A1-stijl zoals A1:C5. De numerieke overload gebruikt 1-based rij- en kolomindexen. Field is ook 1-based binnen het AutoFilter-bereik
ApplyAutoFilter vervangt een eventueel bestaand AutoFilter-bereik op werkbladniveau door het opgegeven bereik en schrijft daarna dezelfde BIFF8-veldcriteria weg die IXLSRange.Autofilter ook gebruikt
Een tekstcriterium dat begint met een vergelijkingsoperator (>=, <=, <>, >, < of =) gevolgd door een getal, zoals '>=100' of '=2.5', wordt als getalvoorwaarde opgeslagen en matcht numerieke cellen precies zoals Excel dat doet. Schrijf het getal met een punt als decimaalteken. Alle andere tekst, ook een kale waarde zoals '100', wordt als tekstvoorwaarde opgeslagen
Gebruik TXLSWorksheet.AutoFilterColumns.Find(Field) om de opgeslagen criteria per veld te bekijken na het toepassen of uitlezen van een klassieke XLS AutoFilter

Voorbeeld

Workbook := TXLSWorkbook.Create;
try
  Sheet := Workbook.Sheets[1];
  Sheet.ApplyAutoFilter('A1:C5', 2, '>=100');
  Workbook.SaveAs('filtered.xls', xlExcel97);
finally
  Workbook.Free;
end;

Zie ook