Hvordan sortere en String Array i VBA

Hvordan sortere en String Array i VBA


Sortere en streng array i Visual Basic for Applications (VBA) er ikke så enkelt som i andre, nyere programmeringsspråk. I VBA, kan du sortere en matrise i stigende rekkefølge ved hjelp av et par "For ... Loops" og looping gjennom hvert element i matrisen. Denne metoden er nyttig når du trenger å vise verdiene tilbake til brukeren i stigende rekkefølge, for å gi dine data et mer profesjonelt utseende.

Bruksanvisning

1 Start Microsoft Excel, klikker du på "Utvikler" fanen, klikk på "Visual Basic" for å åpne VB Editor. Opprett en ny sub prosedyre ved å legge til følgende kode:

Private Sub SortVBAArray ()

2 Lag din streng rekke og legge ti verdier til det:

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"

3 Ring sub prosedyre som vil sortere verdiene i matrisen og avslutte prosedyren:

Call sortArray(dataArray)

End Sub

4 Opprett under prosedyre som vil sortere strengen array i stigende rekkefølge og vise resultatene gjennom Immediate vinduet:

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 å lastIdx - 1

For yCntr = xCntr + 1 Til lastIdx

Hvis tmpArray (xCntr)> tmpArray (yCntr) Deretter

Temp = tmpArray (yCntr)

tmpArray (yCntr) = tmpArray (xCntr)

tmpArray (xCntr) = Temp

Slutt om

Neste yCntr

Neste xCntr

For xCntr = 1 Til UBound (tmpArray)

List = List & vbCrLf & tmpArray (xCntr)

neste

Debug.Print List

End Sub

5 Klikk på første under prosedyre og trykk "Ctrl" + "G" for å vise det gjeldende vinduet. Trykk "F5" for å kjøre programmet og se resultatet.