Un ejemplo para que entiendas mejor:
Código vb:
Ver originalDim vArray() As String
ReDim vArray(5)
Array(0) = "Valor0"
Array(1) = "Valor1"
Array(2) = "Valor2"
Array(3) = "Valor3"
Array(4) = "Valor4"
Array(5) = "Valor5"
'Si yo hago algo como esto
ReDim Preserve vArray(6)
'Todos los índices anteriores preservan el contenido y se expande el array
vArray(6) = "Valor6"
'Pero si hago esto
ReDim Preserve vArray(0)
'Todo mi contenido fue se perdió
MsgBox vArray(1) 'Provocará un error, el índice 1 ya no existe
Por eso, depende del caso, si no quieres realmente perder los datos cada vez que haces ReDim Preserve debes expandir el array porque si haces al revés se perderán los datos que no estén dentro del nuevo rango de índices.