Hai ragione, non avevo capito la domanda.Originariamente inviato da TrigunXX
Io penso che lui cerchi di sapere le n dimensioni di una matrice e non il numero di elementi inferiore (LBound) e superiore (Ubound) di una dimensione di una matrice
Il numero massimo di dimensioni è 60, quindi puoi impostare questo valore come termine massimo.Originariamente inviato da TrigunXX
Se pensi di avere matrici che superano le 50 dimensioni allora nel ciclo
"For i = 1 To 50" modifica il 50 con qualche altro numero
Mi sono permesso di fare una modifica alla funzione, che dovrebbe funzionare anche con 1 solo elemento per dimensione:
codice:Public Function getDimensione(ByRef matrice As Variant) As Long On Error GoTo Fine Dim I As Long For I = 1 To 60 If UBound(matrice, I) >= 0 Then getDimensione = getDimensione + 1& End If Next I Fine: End Function Private Sub Command1_Click() Dim matrice(0, 0, 0, 0, 0, 0, 0, 0, 0, 0) MsgBox CStr(getDimensione(matrice)) End Sub

Rispondi quotando