Ergebnisse aus dem komplexen Filter in unterschiedliche Ziele kopieren
TDF LibreOffice Document Liberation Project Community Blogs Weblate Nextcloud Redmine Ask LibreOffice Spende
Zusammenfassung
Diese Seite zeigt ein LibreOffice Basic Makro Codeschnipsel, das die Ergebnisse aus einem komplexen Filter in verschiedene Ziele filtert. Es ist ein Beispiel aus Kapitel 13 ("Calc als Datenbank") aus dem Handbuch zu Calc 7.0.
Beschreibung
Die Ergebnisse eines komplexen Filters können mit der Einstellung OutputPosition an eine andere Position geladen werden. Die Ergebnisse auf diesem Weg zu kopieren vermeidet es für Calc, Zeilen auszublenden, die den Suchkriterien nicht entsprechen. Das würde normalerweise beim Filtern an die Stelle stattfinden.
Das folgende Makro Code Schnipsel zeigt, wie die Filterergebnisse an eine andere Stelle kopiert werden. Die Filterbeschreibung muss erst angepasst werden, bevor diese Filtereinstellungen eingesetzt werden.
Um die Funktionsweise dieses Schnipsels zu demonstrieren, wird der Code für das Makro AdvancedRangeFilter aus der Seite einen komplexen Filter erstellen genommen und der folgende Code eingesetzt. Das verlinkte Tabellenblatt enthält die modifizierte Version des AdvancedRangeFilter Makros und es verwendet ein Notenblatt in den Zellen $Tabelle1.A1:H11 als Datenbereich und Zellen $Tabelle2.A1:H3 als Kriterienbereich. Die gefilterten Ergebnisse stehen in $Tabelle1.B13:I19.
Code
REM Die Ausgangsdaten werden mehr an die richtige Stelle kopiert als gefiltert.
oFiltDesc.CopyOutputData = True
REM eine CellAddress erstellen und in Tabelle1 einsetzen
REM Spalte B, Zeile 13 (nicht vergessen, mit 0 anfangen zu zählen)
Dim outputCell As New com.sun.star.table.CellAddress
outputCell.Sheet = 0
outputCell.Column = 1
outputCell.Row = 12
oFiltDesc.OutputPosition = outputCell
Dieses Calc Tabellenblatt enthält den obigen LibreOffice Basic Code.