[Risolto] Passare cella come argomento di funzione
[Risolto] Passare cella come argomento di funzione
Vorrei scrivere una macro che accetti una cella come parametro, se indico il parametro come integer o string, mi dà tipo di dati non ammesso, se lo dichiaro come object, mi dà variabile non impostata, qualcuno può aiutarmi?
Ultima modifica di charlie il domenica 23 marzo 2014, 14:41, modificato 2 volte in totale.
Motivazione: Aggiunto segno di spunta verde
Motivazione: Aggiunto segno di spunta verde
OpenOffice 4.0.1 su WINDOWS 8
Re: Passare cella come argomento di funzione
Allega la macro e se possibile, sarebbe meglio, il file spiegando quello che vuoi ottenere
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: Passare cella come argomento di funzione
Scusa ma ci sono parecchi dati personali, mi ci vorrebbe troppo tempo per preparare il file.
Semplicemente vorrei scrivere una, macro che accetti come argomento l'indirizzo di una cella, come si fa normalmente quando si scrive una formula nelle celle del foglio di calcolo, cioè si passa come argomento A1 oppure D3, eccetera. Ho scritto una macro dichiarandola come segue
Function macro ( i As Integer )
....
End Function
Se passo la cella in questa forma, tipo
=macro(A1)
mi dà errore: tipo di dati errato
Nell'altra forma
Function macro ( i As Object )
...
End Function
mi dà errore: variabile non impostata.
In entrambi i casi la riga di errore viene indicata sull'intestazione dichiarativa della funzione.
Semplicemente vorrei scrivere una, macro che accetti come argomento l'indirizzo di una cella, come si fa normalmente quando si scrive una formula nelle celle del foglio di calcolo, cioè si passa come argomento A1 oppure D3, eccetera. Ho scritto una macro dichiarandola come segue
Function macro ( i As Integer )
....
End Function
Se passo la cella in questa forma, tipo
=macro(A1)
mi dà errore: tipo di dati errato
Nell'altra forma
Function macro ( i As Object )
...
End Function
mi dà errore: variabile non impostata.
In entrambi i casi la riga di errore viene indicata sull'intestazione dichiarativa della funzione.
OpenOffice 4.0.1 su WINDOWS 8
Re: Passare cella come argomento di funzione
Puoi fare in diversi modi, dipende da come poi lavori il parametro, ad esempio puoi passare una cella o gruppo di celle come stringhe
ES: "A1" "A1:A10"
Oppure, almeno io faccio così nelle mie funzioni personalizzate, passo degli oggetti e tramite il metodo getdataarray scorro i vari elementi(celle), puoi passare direttamente un array bidimensionale, ma se non alleghi un valido esempio le risposte saranno solo vaghe.
In fondo a questo post viewtopic.php?f=2&t=5247, ho creato una funzione personalizzata dove viene passato un argomento "Indirizzo" che può essere una singola cella o un gruppo di celle monocolonna(nell'esempio) e ne calcola la "MODA", magari può esserti utile.
ES: "A1" "A1:A10"
Oppure, almeno io faccio così nelle mie funzioni personalizzate, passo degli oggetti e tramite il metodo getdataarray scorro i vari elementi(celle), puoi passare direttamente un array bidimensionale, ma se non alleghi un valido esempio le risposte saranno solo vaghe.
In fondo a questo post viewtopic.php?f=2&t=5247, ho creato una funzione personalizzata dove viene passato un argomento "Indirizzo" che può essere una singola cella o un gruppo di celle monocolonna(nell'esempio) e ne calcola la "MODA", magari può esserti utile.
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: Passare cella come argomento di funzione
puoi passare anche un foglio o una colonna intera, vedi questo esempio per trovare la prima riga vuota in una colonna
Codice: Seleziona tutto
sub prova
Sheet = ThisComponent.getSheets().getByIndex(0)
Col = Sheet.getColumns().getByIndex(2) ' colonna C
print CercaPrimaVuota(Sheet, col)
end sub
Function CercaPrimaVuota(Foglio, colonna)
RangeVuoto = colonna.queryEmptyCells.RangeAddresses
CercaPrimaVuota = RangeVuoto(0).StartRow + 1
End Function-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Re: Passare cella come argomento di funzione
Mi scuso se non ho risposto, la macro in questione non mi accettava il parametro perché gli passavo come argomento un valore data, mentre il parametro era divchiarato come integer, poi ho scoperto che bastava dichiarare l'argomento come long. Tutto a posto.
OpenOffice 4.0.1 su WINDOWS 8
Re: Passare cella come argomento di funzione
La tua risposta può tornare utile a qualche altro utente, ecco perchè è importante dare riscontro specialmente quando si trova la soluzione.
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10

