Hola. Me pasa algo que no lo puedo entender.
Tengo dos matrices declaras:
Dim Pedido() As String
Dim Tabla(3, 4)
y la quiero ordenar por el metodo burbuja
Public Sub Form_Load()
Call Imprimo(Pedido, CantFalta, RutaFoto, Tamaño, CaratulasoDiscos, i)
End Sub
Public Sub Imprimo(Pedido, Cantidad, RutaFoto, Tamaño, CaratulasoDiscos, i)
Tabla(0, 0) = "6": Tabla(1, 0) = "9": Tabla(2, 0) = "8"
Tabla(3, 0) = "3"
Burbuja Tabla ' si la llamada es asi ANDA PERFECTO
Burbuja Pedido ' Anda MAL y dice error de compilacion error de tipo: se esperaba una matriz o un tipo definido por el usuario
End Sub
Sub Burbuja(Matriz(), Optional Ascendente As Boolean = True)
Dim Index As Long, Temp As Variant, Siguiente As Long
Dim IndiceSuperior As Long, Pasos As Long
Siguiente = LBound(Matriz)
IndiceSuperior = UBound(Matriz)
Do While Siguiente < IndiceSuperior
Index = IndiceSuperior
Do While Index > Siguiente
If Ascendente Then
If Matriz(Index, 0) < Matriz(Index - 1, 0) Then
Temp = Matriz(Index, 0)
Matriz(Index, 0) = Matriz(Index - 1, 0)
Matriz(Index - 1, 0) = Temp
End If
Else
If Matriz(Index, 0) >= Matriz(Index - 1, 0) Then
Temp = Matriz(Index, 0)
Matriz(Index, 0) = Matriz(Index - 1, 0)
Matriz(Index, 0) = Temp
End If
End If
Index = Index - 1
Pasos = Pasos + 1
Loop
Siguiente = Siguiente + 1
Pasos = Pasos + 1
Loop
Debug.Print "Número de pasos : " & Pasos
End Sub
No entiendo porque no puedo ordenarla si esta declarada esa forma.
Para probar hago esto
Tabla() = Pedido()
lo cual me da erroe que no se puede asignar a una matriz,
Al pedido lo cargo desde un TXT por medio de Tabulaciones y me anda perfecto hasta este momento que lo quiero ordenar. Gracias.
Gracias.