Buongiorno,
non riesco a risolvere il seguente problema.
ho 2 matrici variant Array1 ed Array2
dichiarate, all'inizio, con dim Array1(), Array2()
di Array1 conosco le sue dimensioni iniziali in quanto viene popolata con la linea
Array1 = range("H10" & ":V" & LastV).value, dove LastV e' l'ultima riga del range.
di Array2 non conosco a priori le sue dimensioni, ma ipotizzando
che possa contenere tutte le righe di Array1 ho scritto
ReDim Array2(1 To UBound(Array1, 1), 1 To 15)
successivamente con il ciclo
K = 1
For J = LBound(Array1, 1) To UBound(Array1, 1) '1 <<<<<
dopo semplici calcoli, trasferisco la riga di Array1 in Array2
For Col = 1 To 15
Array2(K, Col) = Array1(J, Col) '2 <<<<<
Next Col
K = K + 1
Next J
a questo punto la matrice Array2 avrà la sua prima dimensione ridotta rispetto a quella iniziale.
ho ridimensionato la matrice Array2 per portarla al suo effettivo numero di righe.
fino a questo punto tutto funziona.
ora devo cancellare la Array1 ed inserire in essa i valori di Array2 per ripetere i calcoli.
ho scritto
Erase Array1
Array1 = Array2 '3 <<<<
ReDim Array1(1 To Righe_effettive, 1 To 15)
Erase Array2
ReDim Array1(1 To Righe_effettive, 1 To 15)
tutto funziona fino a quando la matrice Array2 contiene un numero di righe maggiore di 1.
quando invece Array2 contiene 1 sola riga ho errori nei risultati
precisamente nella linea 1
For J = LBound(Array1, 1) To UBound(Array1, 1)
UBound(Array1, 1) è uguale al precedente valore mentre dovrebbe essere uguale a Righe_effettive =1
con Array1 = Array2 mi ritrovo Array1 vuoto
e la linea
Array2(K, Col) = Array1(J, Col) fornisce errore perchè deve essere
Array2(K, Col) = Array1(Col)
cosa bisogna cambiare nel ciclo affinchè il procedimento sia valido sia con 1 riga
che con molteplici righe contenute in Array2 ?
saluti, grazie