Ho dichiarato un array come tale Dim rArray() As Variant
ma quando provo e utilizzo i valori che sono memorizzati in esso (come mostrato di seguito) ottengo un errore di indice fuori intervallo. I valori UBound(rArray)
e LBound(rArray)
restituiscono entrambi i valori 14 e 1, ma l'errore si verifica sulla riga Debug.Print
.Errore di indice fuori intervallo con un array - nessuna idea del perché?
Se io uso l'istruzione for, come di seguito
For Each rArr in rArray
allora funziona senza problemi, ma per gli scopi sto creando questo array ho bisogno della flessibilità di selezionare ogni elemento memorizzato in che ordine-senso ho bisogno per riferirsi a loro usando i pedici.
Ho provato diversi modi per tentare di risolverlo senza fortuna e passare quasi la metà della giornata a questo problema. Qualcuno potrebbe indicare cosa ho bisogno di cambiare per farlo funzionare.
Set rng = Range("D4", Range("D4").End(xlDown))
rng.NumberFormat = "0"
rArray = rng.Value
For x = UBound(rArray) To LBound(rArray) Step -1
Debug.Print rArray(x)
Next x
Edit: un altro fatto degno di nota è che lui array viene dichiarato e utilizzato all'interno di una funzione, ma non è passato dalla o alla funzione. Non è possibile dichiarare e utilizzare le matrici nelle funzioni?
non sono esperto, ma cosa succede se si stampa x e vedere quale valore di x il problema si verifica a – barlop
Grazie. Non devo stampare x, mentre eseguo il debug posso vedere il valore di x è 14, da cui inizia il ciclo: ci sono 14 elementi memorizzati nell'array. –
come procedura per la risoluzione dei problemi, cosa succede se si rimuove il loop e si prova x = 13? e prova per x = 1 – barlop