Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Ho individuato il problema, anche se non capisco il motivo e quindi come risolvere.
Sostanzialmente il problema è legato a come viene popolato l'array.
Se l'array viene popolato con un normale ciclo For tutto funziona correttamente:
For num_riga_array = 1 To num_colori
matrice_bor(num_riga_array, 1) = Mid(Trim(Evaluate("libreria_colori!A" & num_riga_array)), 2, 3)
matrice_bor(num_riga_array, 2) = Mid(Trim(Evaluate("libreria_colori!A" & num_riga_array + 1)), 2, 3)
matrice_bor(num_riga_array, 3) = Trim(Evaluate("libreria_colori!B" & num_riga_array))
Next num_riga_array
In questo primo caso la variavile num_riga_array viene aumentata dal ciclo For.
Se invece popolo l'array nel modo seguente, tutto smette di funzionare (anche se l'array è comunque popolato correttamente):
num_riga_array = 1
For num_riga_libreria = 2 To num_colori
If Trim(Evaluate("libreria_colori!B" & num_riga_libreria)) = Replace(Trim(Evaluate("libreria_colori!B" & num_riga_libreria + 1)), " C/FILM", "") Then
matrice_bor(num_riga_array, 1) = Mid(Trim(Evaluate("libreria_colori!A" & num_riga_libreria)), 2, 3)
matrice_bor(num_riga_array, 2) = Mid(Trim(Evaluate("libreria_colori!A" & num_riga_libreria + 1)), 2, 3)
matrice_bor(num_riga_array, 3) = Trim(Evaluate("libreria_colori!B" & num_riga_libreria))
num_riga_array = num_riga_array + 1
End If
Next num_riga_libreria
In poche parole nel secondo caso nella matrice_bor(num_riga_array, 1) la variabile num_riga_array non viene aumentata dal ciclo For ma dalla formula num_riga_array = num_riga_array + 1.
Così facendo l'array è correttamente popolato, ma non capisco il motivo nei cicli For successivi si generano i problemi che ho descritto sopra.
Quale è la causa? Come posso risolvere?
Grazie