none
Redim Preserve en Array RRS feed

  • Pregunta

  • Hola a todos

    Estoy programando en Excel con VBA y necesito crear un array el cual ira creciendo segun los datos que hayan ingresado.
    Es decir que la cantida de filas varia.

    Dim Dias() As Variant
    i = 0
    Range("J2").Select
    Do While ActiveCell.Value <> ""
        ReDim Preserve Dias(i, 1)
        Dias(i, 0) = ActiveCell.Value
        ActiveCell.Offset(0, 1).Select
        Dias(i, 1) = ActiveCell.Value
        ActiveCell.Offset(1, -1).Select
        i = i + 1
    Loop

    Pero en la segund iteracion me retorna un error subindice fuera del intervalo.
    Por favor algun aporte.

    Gracias

    sábado, 24 de noviembre de 2012 2:06

Respuestas

  • Hola!

    yo diría que tienes que invertir las dimensiones de la matriz

    Dim Dias() As Variant, _
        i As Long
    
    i = 0
    Range("J2").Select
    Do While Not IsEmpty(ActiveCell)
        ReDim Preserve Dias(1, i)
        Dias(0, i) = ActiveCell.Value
        ActiveCell.Offset(0, 1).Select
        Dias(1, i) = ActiveCell.Value
        ActiveCell.Offset(1, -1).Select
        i = i + 1
    Loop


    Saludos a todos desde Huelva
    http://www.mvp-access.es/emilio/



    • Editado Emilio Sancha sábado, 24 de noviembre de 2012 11:31
    • Marcado como respuesta M4rk00s sábado, 1 de diciembre de 2012 4:40
    sábado, 24 de noviembre de 2012 11:30

Todas las respuestas

  • Hola!

    yo diría que tienes que invertir las dimensiones de la matriz

    Dim Dias() As Variant, _
        i As Long
    
    i = 0
    Range("J2").Select
    Do While Not IsEmpty(ActiveCell)
        ReDim Preserve Dias(1, i)
        Dias(0, i) = ActiveCell.Value
        ActiveCell.Offset(0, 1).Select
        Dias(1, i) = ActiveCell.Value
        ActiveCell.Offset(1, -1).Select
        i = i + 1
    Loop


    Saludos a todos desde Huelva
    http://www.mvp-access.es/emilio/



    • Editado Emilio Sancha sábado, 24 de noviembre de 2012 11:31
    • Marcado como respuesta M4rk00s sábado, 1 de diciembre de 2012 4:40
    sábado, 24 de noviembre de 2012 11:30
  • Esto si funciono, gracias, observo que puede aplicarse redim para incrementar la cantidad de columnas en una matriz pero no la cantidad de filas. O se requiere algo extra?
    sábado, 1 de diciembre de 2012 4:40
  • No, es al reves, solo se puede incrementar el número de filas, nunca el de columnas.

    Saludos a todos desde Huelva
    http://www.mvp-access.es/emilio/

    sábado, 1 de diciembre de 2012 11:20