Copia i risultati del filtro avanzato in una posizione diversa
TDF LibreOffice Document Liberation Project Blog comunitari Weblate Nextcloud Redmine Ask LibreOffice Donazione
Riepilogo
Questa pagina fornisce un frammento di codice macro di LibreOffice Basic che copia i risultati del filtro avanzato in una posizione diversa. È un esempio tratto dal Capitolo 13 ("Calc come database") della Guida 7.0 Calc.
Descrizione
I risultati di un filtro avanzato possono essere estratti in una posizione diversa utilizzando la proprietà OutputPosition. Copiare i risultati in questo modo elimina la necessità per Calc di nascondere le righe che non corrispondono ai criteri di ricerca, cosa che normalmente farebbe se si filtrassero sul posto.
Il frammento di codice macro riportato di seguito mostra come copiare i risultati del filtro in una posizione diversa. Si noti che il descrittore del filtro deve essere modificato prima di applicare queste impostazioni di filtro.
Per dimostrare il funzionamento di questo frammento, prendete il codice per la procedura macro AdvancedRangeFilter sul Crea filtro avanzato e inserite il codice indicato di seguito, appena prima che venga chiamato il metodo filtro. Il foglio di calcolo collegato contiene la versione modificata della procedura macro AdvancedRangeFilter e utilizza un foglio di valutazione della classe nelle celle $Foglio1.A1:H11 come intervallo di dati e celle $Foglio2.A1:H3 come intervallo di criteri. I risultati filtrati vengono inseriti nelle celle $Foglio1.B13:I19.
Codice
REM Copia i dati di output anziché filtrarli sul posto.
oFiltDesc.CopyOutputData = True
REM Create un CellAddress e impostatelo per Foglio1
REM Colonna B, riga 13 (ricorda, inizia a contare con 0)
Dim outputCell As New com.sun.star.table.CellAddress
outputCell.Sheet = 0
outputCell.Column = 1
outputCell.Row = 12
oFiltDesc.OutputPosition = outputCell
Questo Foglio di calcolo Calc contiene il codice soprastante Basic di LibreOffice.