Sorteren van een tekenreeksmatrix in Visual Basic for Applications (VBA) is niet zo eenvoudig als in andere, meer recente programmeertalen. In VBA kunt u Sorteer een array in oplopende volgorde met een paar "For... Loops"en in een lus doorlopen elk element in de matrix. Deze methode is handig wanneer u nodig hebt om weer te geven waarden terug naar de gebruiker in oplopende volgorde, naar een meer professionele uitstraling geven aan uw gegevens.
Wat die u nodig hebt
- Microsoft Excel
Start Microsoft Excel, klik op het tabblad 'Developer' en 'Visual Basic' om de VB-Editor te openen. Maak een nieuwe Sub-procedure door toevoeging van de volgende code:
Private Sub SortVBAArray()
Maak uw tekenreeksmatrix en tien waarden toevoegen aan het:
Dim dataArray(10) As String dataArray(0) = "John" dataArray(1) = "Zackari" dataArray(2) = "Sam" dataArray(3) = "Adam" dataArray(4) = "Bob" dataArray(5) = "Kitzia" dataArray(6) = "Daniel" dataArray(7) = "Oscar" dataArray(8) = "Alan" dataArray(9) = "Yarexli"
Bel de sub-procedure die zal sorteren de waarden in de matrix en het einde van de procedure:
Call sortArray(dataArray)
End Sub
Maak de sub-procedure zal de tekenreeksmatrix in oplopende volgorde te sorteren en weer te geven van de resultaten via het venster Direct:
Sub sortArray(tmpArray() As String)
Dim firstIdx As Integer Dim lastIdx As Integer Dim xCntr As Integer Dim yCntr As Integer Dim Temp As String Dim List As String firstIdx = LBound(tmpArray) lastIdx = UBound(tmpArray) For xCntr = firstIdx To lastIdx - 1 For yCntr = xCntr + 1 To lastIdx If tmpArray(xCntr) > tmpArray(yCntr) Then Temp = tmpArray(yCntr) tmpArray(yCntr) = tmpArray(xCntr) tmpArray(xCntr) = Temp End If Next yCntr Next xCntr For xCntr = 1 To UBound(tmpArray) List = List & vbCrLf & tmpArray(xCntr) Next Debug.Print List
End Sub
Klik op de eerste sub-procedure en druk op "Ctrl" + "G" om het venster Direct weergeven. Druk op "F5" naar het programma uitvoert en de resultaten bekijken.