View Full Version : Sort Alphabetical
Kumar
04-03-2009, 03:17 AM
hi,
I have an array of 5 values i need to verify the listed array is in a alphabetical order or not
Bob Phillips
04-03-2009, 06:46 AM
What sort of array? A VBA array, worksheet array? And in what applicationb?
Kumar
04-06-2009, 05:30 AM
What sort of array? A VBA array, worksheet array? And in what applicationb?
Its an VBA Array
lucas
04-10-2009, 12:35 PM
Here is an example of how to use a bubble sort on a vba array. In a standard module and run the sub "test"
Option Base 1
Option Explicit
Sub test()
Dim arrayContacts() As Variant
arrayContacts = Array("James", "Mary", "Tom", "Beth", "Bob", "Chris", _
"Daniel", "Lari", "Al", "Teresa")
Call BubbleSort(arrayContacts)
End Sub
Sub BubbleSort(MyArray() As Variant)
Dim First As Integer
Dim Last As Integer
Dim i As Integer
Dim j As Integer
Dim Temp As String
Dim List As String
First = LBound(MyArray)
Last = UBound(MyArray)
For i = First To Last - 1
For j = i + 1 To Last
If MyArray(i) > MyArray(j) Then
Temp = MyArray(j)
MyArray(j) = MyArray(i)
MyArray(i) = Temp
End If
Next j
Next i
For i = 1 To UBound(MyArray)
List = List & vbCrLf & MyArray(i)
Next
MsgBox List
End Sub
example attached.
lucas
04-18-2009, 03:09 PM
Malcolm suggests that we show the results in the sub test rather than from the function....he has offered the following change which does just that...a good suggestion. Thanks Malcolm.
Option Explicit
Sub test()
Dim arrayContacts() As Variant
Dim i As Integer
Dim List As String
arrayContacts = Array("James", "Mary", "Tom", "Beth", "Bob", "Chris", _
"Daniel", "Lari", "Al", "Teresa")
Call BubbleSort(arrayContacts)
For i = 1 To UBound(arrayContacts)
List = List & vbCrLf & arrayContacts(i)
Next
MsgBox List
End Sub
Sub BubbleSort(MyArray() As Variant)
Dim First As Integer
Dim Last As Integer
Dim i As Integer
Dim j As Integer
Dim Temp As String
Dim List As String
First = LBound(MyArray)
Last = UBound(MyArray)
For i = First To Last - 1
For j = i + 1 To Last
If MyArray(i) > MyArray(j) Then
Temp = MyArray(j)
MyArray(j) = MyArray(i)
MyArray(i) = Temp
End If
Next j
Next i
For i = 1 To UBound(MyArray)
List = List & vbCrLf & MyArray(i)
Next
End Sub
Powered by vBulletin® Version 4.2.5 Copyright © 2024 vBulletin Solutions Inc. All rights reserved.