2016-05-09 5 views
5

Is Questo codice è corretto per determinare il numero di elementi in una matrice di varianti di una singola dimensione in VBA di Excel. Supponendo che abbia un array variante chiamato Array1 con k elementi.Numero di elementi in una matrice di varianti di una singola dimensione in excel

Dim n as Integer 
n = UBound(Array1) 
+2

penso che è necessario uno assumendo di base 0. – findwindow

+1

No , 'UBound' restituisce solo il limite superiore, ovvero l'indice più alto della dimensione selezionata. Non dice nulla del numero di elementi a meno che tu non sia sicuro che l'array abbia 'Base 1'. Vedi la risposta di tigeravatar su come contare gli elementi. – Vegard

risposta

10

Per ottenere un conteggio accurato, è necessario fare UBound - LBound + 1. Questo perché gli array non devono passare dall'indice 1 al n, possono iniziare praticamente in qualsiasi indice desiderato. Ecco un esempio in cui si va dal 3 al 7, che è un totale di 5 elementi (3, 4, 5, 6, e 7):

Sub tgr() 

    Dim Array1(3 To 7) As Variant 
    Dim lNumElements As Long 

    lNumElements = UBound(Array1) - LBound(Array1) + 1 
    MsgBox lNumElements 

End Sub