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.