Un esempio che mostra come sia possibile scrivere una funzione che abbia come parametro un intervallo di celle e restituisca un intervallo di celle.
In questo caso la funzione ha come paramentro un elenco e ne restituisce uno senza celle vuote e senza valori a zero.
Deve essere inserita come formula di matrice: mettendo come parametro della funzione l'intervallo di origine, selezionando tutto l'intervallo di destinazione e confermando con Ctrl-Maiuscolo-Invio.
Function Togli_Zeri_E_Vuote(
Origine As Range)
As Variant
' numero di righe della colonna orgiginale e risultato
NrRigheI =
Origine.
Rows.Count
NrRigheA =
Application.Caller.
Rows.Count
'matrice dei risultati
Dim arrRes()
As Variant
ReDim arrRes(NrRigheA - 1, 1)
'scorre le righe
Ri = 1
Ra = 0
While (Ri <= NrRigheI And Ra <= NrRigheA)
'copia il valore solo se non è vuoto o zero
If (
Origine.
Cells(Ri, 1) <> "" And
Origine.
Cells(Ri, 1) <> 0)
Then
arrRes(Ra, 0) =
Origine.
Cells(Ri, 1)
Ra = Ra + 1
End If
Ri = Ri + 1
Wend
'imposta a vuoto le rimanenti celle
For R = Ra
To NrRigheA - 1
arrRes(R, 0) = ""
Next R
Togli_Zeri_E_Vuote = arrRes
End Function
Gli esempi contenuti nel sito sono per uso personale, non é consentito l'uso professionale, commerciale o la riproduzione senza autorizzazione.