On 05/04/06, Paolo Mantovani <[EMAIL PROTECTED]> wrote: > > Ciao Michele, > > Alle 12:22, mercoledì 5 aprile 2006, Michele Zarri ha scritto: > > Ciao Dev-IT, > > > > Prima di tutto devo confessare che per il 99% dei casi uso StarBasic per > > creare macro in Writer, tuttavia di recente ho avuto bisogno di creare > un > > paio di macro in Calc e mi sono subito trovato di fronte a un bel > > problemuccio (sicuramente causato dalla mia inesperienza). > > > > Ho un insieme di stringhe in una colonna che vorrei mettere in un array, > > cercando qua e la' ho trovato questo: > > > http://api.openoffice.org/docs/common/ref/com/sun/star/sheet/XCellRangeData > >html#getDataArray > > > > Percio' avevo scritto le seguenti istruzioni: > > Nota: Un po' sopra queste istruzioni ho un Dim mCategoriesArray() As > String > > > > oSourceRange = oDataSheet.getCellRangeByPosition > (0,1,0,nNumberOfCategories) > > mCategoriesArray() = oSourceRange.getDataArray( ) > > > > .. e non funziona. > > > > dove sbaglio? > > Mi pare che problema sia il dimensionamento dell'array come String > > notare che la documentazione che hai citato dice: > --------- > Methods' Details > getDataArray > sequence< sequence< any > > > > --------- > > In sostanza il metodo restituisce una sequenza di sequenze che a loro > volta > contengono dati di tipo any > > tradotto in Basic: > si tratta di un array di arrays nei quali gli elementi sono di tipo > Variant > > In pratica, se chiami getDataArray() sul range A1:B3 ti viene restituito > un > array nidificato come questo: > > [ [A1,B1], [A2,B2], [A3,B3] ] > > Dove A1,B1 ecc. rappresentano i dati contenuti nelle celle omonime. > > In termini di codice dovrai dichiarare il tuo array principale come > Variant > Oppure puoi omettere del tutto il tipo di dato (equivale a Variant) > > Poi per ottenere il contenuto delle celle dovrai impostare non uno ma due > cicli nidificati: > > > Dim mCategoriesArray() As Variant > Dim Riga() As Variant > Dim Cella As Variant > > oSourceRange = oDataSheet.getCellRangeByPosition > (0,1,0,nNumberOfCategories) > mCategoriesArray() = oSourceRange.getDataArray() > > For Each riga in mCategoriesArray() > For Each Cella in Riga() > Print Cella > Next Cella > Next Riga > > > NB: nell'esempio ho dichiarato solo le variabili legate alla questione > proposta. > > > saluti > Paolo Mantovani > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > Mmm... mi pare che la cura sia peggiore del male :)
Mi sa che mi accontento del ciclo For...Next. Grazie tantissimo per la spiegazione come sempre chiarissima. Ciao, Michele PS: Ancora nessuno con il pollice verde che mi sappia dare una mano con i miei benedetti alberi... :-(
