Visual Basic para Aplicaciones - duda/fallo al declarar una matriz

Life is soft - evento anual de software empresarial
 
Vista:
Imágen de perfil de Analista_bayesiano

duda/fallo al declarar una matriz

Publicado por Analista_bayesiano (2 intervenciones) el 22/01/2015 17:56:45
Hola amigos:
Tengo un problema al declarar una matriz vector:

si declaro de esta forma, va bien.
Sub funciona()

Dim mat_ori(10) As Double

End Sub


pero quiero declarar la dimensión de matriz en función de lo que me devuelvan códigos previos, y lo hago de esta forma usando un variable entero, falla por este error:
"Error de compilación: es necesaria una expresión de constante"

Sub no_funcoina()

Dim a As Integer
a = 10
Dim mat_ori(a) As Double

End Sub

el tema es que quería escribir una función cuyo argumento es un rango,
y uno de los pasos es llevar los valores de ese rango a una matriz, y para que esa función sea general que funciona con rangos de distintos tamaños, no puedo "predefinir" la dimensión de la matriz.
¿Alguien me puede echar una mano?

Gracias y un saludo a todos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 11
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

duda/fallo al declarar una matriz

Publicado por Audad (79 intervenciones) el 24/01/2015 14:30:02
Buen dia... te ayuda ?
https://msdn.microsoft.com/es-es/library/office/gg251578(v=office.15).aspx
... es REDIM...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Analista_bayesiano

duda/fallo al declarar una matriz

Publicado por Analista_bayesiano (2 intervenciones) el 27/01/2015 12:56:48
sí me funciona!

curiosamente el REDIM admite argumento de tipo variable declarado previamente.
y el dim no.
así que la solución es declarar con dim una matriz de tamaño 1, y luego con redim le modificamos la dimensión que queremos.

me parece un poco rebuscado y poco intuitivo, sin vuestra ayuda no habría encontrado la solución en mi vida....

Muchas gracias y un abrazo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar