Redimensionar matriz bidimensional

Disculpa la molestia pero resulta que estoy realizando una guía para almacenar personas con dirección, nombre, apellido y teléfono y uso una matriz bidireccional dinámica ya que esa es la consigna. Y cuando ya tengo una persona cargada no puedo redimensionar manteniendo los datos para que el tamaño de la primera dimension pase a dos y así sucesivamente cuando se carguen las personas.
¿Se puede redimensionar un vector bidimensional?
Mi código:
Dim guia() As String
Private Sub Agregar_Click()
Dim n As Integer
n = 1
ReDim Preserve guia(n, 4)
For i = 1 To n
    For j = 1 To 4
    If guia(i, j) = "" Then
    Select Case j
    Case 1
    guia(i, j) = InputBox("Introduzca el Apellido")
    Case 2
    guia(1, j) = InputBox("Introduzca el Nombre")
    Case 3
    guia(i, j) = InputBox("Introduzca la Direccion")
    Case 4
    guia(i, j) = InputBox("Introduzca el telefono")
    End Select
    Else
    n = n + 1
    ReDim Preserve guia(n, 4)
    i = n
    Select Case j
    Case 1
    guia(i, j) = InputBox("Introduzca el Apellido")
    Case 2
    guia(1, j) = InputBox("Introduzca el Nombre")
    Case 3
    guia(i, j) = InputBox("Introduzca la Direccion")
    Case 4
    guia(i, j) = InputBox("Introduzca el telefono")
    End Select
End If
Next j
Next i
End Sub
Private Sub Mostrar_Click()
For i = 1 To UBound(guia)
    For j = 1 To 4
    Text1.Text = Text1.Text & guia(i, j) & "           "
    Next j
    Text1.Text = Text1.Text & Chr(13) & Chr(10)
    Next i
End Sub
El error es que el subíndice esta fuera de intervalo y me marca la linea que esta en negrita.

1 respuesta

Respuesta
1
Los array son base 0, eso quiere decir que su primer elemento es el elemento cero y su ultimo elemento es n-1, es posible que ese sea tu error.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas