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.
¿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 de Roberto Alvarado
1