ho una matrice con molti elementi, tipo Matrice(1 to 50000, 1 to 16)
ora dovrei scrivere in un altra matrice gli elementi che sono nella matrice primaria
diciamo che dovrei prendere gli elementi dal numero 4000 al numero 14000 e solo della chiamiamola "Colonna" 8 del secondo range.
con il VBA ho creato questa
- Codice: Seleziona tutto
ReDim rng(x)
For k = x - (Limite2 - 1) To x
rng(n) = Calc(k, 4)
n = n + 1
Next k
dove rng e la matrice nuova x è il numero di elelmenti, visto che mi interessa 1 valore dei 16
limite2 è un numero fisso diciamo 1000
quindi il ciclo parte da un valore della matrice di 1000 numeri precedenti fino al valore di x attuale e li scrive nella matrice rng
questo perche mi serve la media di quei 1000 valori
che ottengo con
- Codice: Seleziona tutto
Calc(x, 5) = WorksheetFunction.Average(rng)
ora questo ciclo di 1000, e ce ne sono 4 anche più di 1000, mi comportano un grosso ritardo nell'esecuzione del codice, visto che questi cicli si ripetono per 50000 elementi.
in effetti vorrei eliminare il ciclo cosi diminuirei l'esecuzione della macro.
in un primo momento avevo optato per
- Codice: Seleziona tutto
Calc(x, 5) = WorksheetFunction.Average(Calc(x - Limite1, 4), Calc(x, 4))
ma va in errore, forse non ho impostato bene la cosa.
ci sarebbe una soluzione diversa del Ciclo For....next, per calcolare la media di n valori precedenti alla x della matrice Calc()
Ciao By Sal (8-D