Sortering 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 . Du trenger:
Microsoft Excel
Vis flere instruksjoner
en
Launch Microsoft Excel , klikker du på " Utvikler " fanen , deretter " Visual Basic " for å åpne VB Editor. Opprett en ny sub prosedyre ved å legge følgende kode:
Private Sub SortVBAArray ( )
2
Lag din string array og legge ti verdier til det : en
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 : en
Ring sortArray ( dataArray )
End sub
4
Opprett sub prosedyre som vil sortere string array i stigende rekkefølge og vise resultatene gjennom Immediate-vinduet : en
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 som String
firstIdx = LBound ( tmpArray )
lastIdx = UBound ( tmpArray )
For xCntr = firstIdx å lastIdx - en
For yCntr = xCntr + en til lastIdx
p Hvis tmpArray ( xCntr ) > tmpArray ( yCntr ) Så
Temp = tmpArray ( yCntr )
tmpArray ( yCntr ) = tmpArray ( xCntr )
tmpArray ( xCntr ) = Temp
End If
Neste yCntr
Neste xCntr
For xCntr = 1 To UBound ( tmpArray )
List = List & vbCrLf & tmpArray ( xCntr )
Neste
Debug.Print List
End Sub
5
Klikk på den første delprosedyre og trykk " Ctrl" + " G " for å vise det gjeldende vinduet . Trykk "F5 " for å kjøre programmet og vise resultatene .