Buongiorno.
Ho un problema che non so se abbia una soluzione o sia intrinsecamente limitato dalle regole di Excel.
La mia routine rucorsiva scorre la prima colonna in cui ci sono delle celle unite, che si riferiscono ad altri dati da elaborare. A me occorre mettere in un array i limiti di ogni cella unita, quindi inizio e fine, dinamicamente.
Ho trovato il modo, ed è abbastanza semplice; per farlo, utilizzo un array multimensionale. La routine va da sé è dinamica, quindi dovrebbe contemperare la possibilità di ridurre la dimensione dell'array a quella reale al termine del popolamento. 
Però, l'istruzione reDim Preserve mi dà errore. Credo sia appunto un limite di exel che non permette di ridimensionare a piacimento.
Questa è la routine:
Sub mappatura()
Dim arrTemp() As Integer, arrRif()
Dim iIni As Integer, iFine As Integer
iIni = 41
iK = 1
ReDim arrTemp(1 To 100, 1 To 2)
While Cells(iIni, 1).MergeArea.Count > 1
    'ReDim Preserve arrTemp(iK, 2)
    arrTemp(iK, 1) = iIni
    With ActiveSheet
         Set rng = Cells(iIni, 1)
         With rng
            iFine = iIni + .MergeArea.Rows.Count
            arrTemp(iK, 2) = iFine - 1
         End With
    End With
    iIni = ini + iFine
    iK = iK + 1
Wend
ReDim preserve arrTemp(1 To UBound(arrTemp), 2)
End Sub
 Ho pure pensato di trasferire l'array arrTemp in un altro già ridimensionato, ma non so bene se sia possibile.
Se nessuno ha qualche suggerimento, mi terrò il limite iniziale a 100, ma credo sia uno spreco di spazio inutile.
Grazie in anticipo.