Hola Robert:
No se asusten tan rápido!! La mayoría de las cosas tienen solución (muchas puede ser que uno no las sepa, me atajo)
Para tu caso hay varias:
1) Declarar el array en un módulo como public.
2) Declararlo en el formulario con Private o Dim y hacer un procedimiento de propiedad público para accederlo:
Private VariableMiArray() as Variant
Redim... etc
Public Property Get MiArray(Dimension1 As Long, dimension2 As Long) As Variant
MiArray = VariableMiArray(Dimension1, dimension2)
End Property
Public Property Let MiArray(Dimension1 As Long, dimension2 As Long, NuevoValor As Variant)
VariableMiArray(Dimension1, dimension2) = NuevoValor
End Property
desde Form2 lo accedes con Form1.MiArray
3) Algo parecido, pero de una manera diferente.
A) Si solo tienes que leerlo desde Form2:
En Form1 va:
Public Property Let MiArray(nArray As Variant)
VariableMiArray = nArray
End Property
desde Form2 lo accedes con Form1.MiArray
Si tines que leerlo, y poder modificarlo:
En Form1 va:
Public Property Get MiArray() As Variant
MiArray = VariableMiArray
End Property
Public Property Let MiArray(nArray As Variant)
VariableMiArray = nArray
End Property
En form2 para leerlo:
Form1.MiArray(indice1,indice2)
Para modificarlo:
Dim ElArray
ElArray = Form1.MiArray
ElArray(1, 1) = "Otra cosa"
Form1.MiArray = ElArray
Y podría haber más opciones.
Saludos,
Javier