Crea filtro avanzato

From The Document Foundation Wiki
< Macros‎ | Calc
Jump to navigation Jump to search
This page is a translated version of the page Macros/Calc/ba029 and the translation is 100% complete.
Other languages:
English • ‎italiano

Questa pagina fornisce una procedura macro di LibreOffice Basic che crea un filtro avanzato. È un esempio tratto dal Capitolo 13 ("Calc come database") della Guida 7.0 Calc.

Descrizione

L'applicazione di un filtro avanzato con una macro funziona in modo simile all'impostazione di un filtro standard. La differenza fondamentale è che l'intervallo di celle contenente i criteri di filtro viene utilizzato per creare il descrittore di filtro. La procedura macro di seguito mostra come eseguire questa operazione utilizzando il metodo createFilterDescriptorByObject. Utilizzate un foglio di valutazione della classe nelle celle $Foglio1.A1:H11 come intervallo di dati e celle $Foglio2.A1:H3 come intervallo di criteri. Il foglio di calcolo collegato contiene un tale intervallo di dati e un intervallo di criteri.

Codice

 1Sub AdvancedRangeFilter()
 2  Dim oSheet     'Un foglio dal documento Calc.
 3  Dim oRanges    'La proprietà NamedRanges.
 4  Dim oCritRange 'Intervallo che contiene i criteri di filtro.
 5  Dim oDataRange 'Intervallo che contiene i dati da filtrare.
 6  Dim oFiltDesc  'Descrizione del filtro
 7
 8  REM Intervallo che contiene i criteri di filtro
 9  oSheet = ThisComponent.getSheets().getByIndex(1)
10  oCritRange = oSheet.getCellRangeByName("A1:H3")
11
12  REM È inoltre possibile ottenere l'intervallo contenente il 
13  REM criterio di filtro da un intervallo denominato.
14  REM oRanges = ThisComponent.NamedRanges
15  REM oRange = oRanges.getByName("AverageLess80")
16  REM oCritRange = oRange.getReferredCells()
17
18  REM I dati che volete filtrare
19  oSheet = ThisComponent.getSheets().getByIndex(0)
20  oDataRange = oSheet.getCellRangeByName("A1:H11")
21
22  oFiltDesc = oCritRange.createFilterDescriptorByObject(oDataRange)
23  oDataRange.filter(oFiltDesc)
24End Sub

Questo Calcolo foglio di calcolo contiene il codice soprastante Basic di LibreOffice.