Condividi:        

Rendere uguali 2 array

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Rendere uguali 2 array

Postdi miko » 01/10/21 10:42

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
windows 10 - office 2013
miko
Utente Senior
 
Post: 520
Iscritto il: 29/12/09 10:44

Sponsor
 

Re: Rendere uguali 2 array

Postdi Anthony47 » 01/10/21 12:49

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.
Spieghi come hai fatto?

Io, dopo aver popolato Array2 con un subset di righe mi limiterei a fare
Codice: Seleziona tutto
ReDim Array1(1 To K, 1 To 15)
For I = 1 To K
    For J = 1 To 15
        Array1(I, J) = Array2(I, J)
    Next J
Next I


Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Rendere uguali 2 array":


Chi c’è in linea

Visitano il forum: Nessuno e 37 ospiti