Originally Posted by
Paul_Hossler
not very general purpose, but Redim( ) would be helpful if the amount of data varies
[VBA]
Sub test()
Dim a(1 To 6, 1 To 3) As Variant
Dim i As Long, j As Long
Dim v As Variant
Dim x As Long
'col1 col2 col3
' 56 22 xyz
' 22 30 zyz
' 56 30 zxz
' 22 30 zxz
' 10 18 zzz
' 22 18 zxx
a(1, 1) = 56
a(1, 2) = 22
a(1, 3) = "xyz"
a(2, 1) = 22
a(2, 2) = 30
a(2, 3) = "zyz"
a(3, 1) = 56
a(3, 2) = 30
a(3, 3) = "zxz"
a(4, 1) = 22
a(4, 2) = 30
a(4, 3) = "zyz"
a(5, 1) = 10
a(5, 2) = 18
a(5, 3) = "zzz"
a(6, 1) = 22
a(6, 2) = 18
a(6, 3) = "zxz"
'bubble sort col2
For i = LBound(a, 1) To UBound(a, 1) - 1
For j = i + 1 To UBound(a, 1)
If a(j, 2) > a(i, 2) Then
x = a(i, 1)
v = a(i, 3)
a(i, 1) = a(j, 1)
a(i, 3) = a(j, 3)
a(j, 1) = x
a(j, 3) = v
End If
Next j
Next i
'bubble sort col1
For i = LBound(a, 1) To UBound(a, 1) - 1
For j = i + 1 To UBound(a, 1)
If a(j, 1) > a(i, 1) Then
x = a(i, 1)
v = a(i, 3)
a(i, 1) = a(j, 1)
a(i, 3) = a(j, 3)
a(j, 1) = x
a(j, 3) = v
End If
Next j
Next i
For i = LBound(a, 1) To UBound(a, 1)
MsgBox a(i, 1) & " --- " & a(i, 2) & " --- " & a(i, 3)
Next i
Stop
End Sub
[/VBA]
Paul