Ayuda con macro

Sub Tomadedatos(ByVal fi, ByVal ci, tamresp)
Dim tampresp As Integer
Dim matriztotales(7) As Integer
For i = 1 To tamresp
    matriztotales(i) = Cells(fi + i - 1, ci)
Next
Con esta macro pretendo crear un vector de respuestas el problema es que necesito definir el tamaño del arreglo, la variable tamresp contiene el tamaño requerido pero cuando en ves de ese 7 que aparece ahí pongo tamresp me da error.
Por lo que necesito saber como definir el tamaño del arreglo a través de una variable o como aumentarle o restarle ese tamaño por medio de variables, por ejemplo definir que sea de 2,2 o solo de 2 y luego hacer que sea de 4,4 o de 1,1,.

1 Respuesta

Respuesta
1
Sub Tomadedatos(ByVal fi, ByVal ci, tamresp)
   ReDim matriztotales(tamresp) As Integer
   For i = 1 To tamresp
       matriztotales(i) = Cells(fi + i - 1, ci)
   Next
En principio se puede definir la matriz dependiendo del parámetro que le pases.
Pues bien, en teoría así debería ser
Pero me da un error, he ahí mi pregunta
Tengo el excel 2010 y me dice
Compile error
constant expression required
Yo estoy usando Excel 2003, pero no debería haber diferencias.
El código siguiente lo he probado y me funciona perfectamente:
Sub Tomadedatos(ByVal fi, ByVal ci, tamresp)
    Dim i As Integer
    ReDim matrizTotales(tamresp) As Integer
    For i = 1 To tamresp
        matrizTotales(i) = Cells(fi + i - 1, ci)
    Next
End Sub
Si te da error... prueba a definir la matriz con un tamaño exagerado que nunca pueda alcanzar: ReDim matrizTotales(1 to 100000) As Integer
Pero entiendo que debería funcionar como está.
Dime si sigue con problemas y vemos qué puede estar pasando.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas