VBA Sort Array

Denne vejledning viser, hvordan du sorterer værdier i et array i VBA

Sortering af et en-dimensionelt array ved hjælp af en loop

Sortering af et array kræver en smule datamanipulation ved hjælp af loops, variabler og midlertidige arrays.

  • Du skal først udfylde arrayet med dine værdier
  • Du skal derefter gå igennem arrayet to gange! En gang for at få en værdi fra det aktuelle element array, og mens det stadig er i den loop, for at få værdien af ​​det næste element i arrayet.
  • Du skal derefter sammenligne elementerne - og flytte den anden til positionen for den første, hvis den anden er alfabetisk FØR den første.

Nedenstående eksempel viser denne procedure.

1234567891011121314151617181920212223 Sub SortAnArray ()Dim i så længe'Indstil matrixenDim strName () Som variantDim Temp som variant'udfyld matrixenstrName () = Array ("Bob Smith", "John Davies", "Fred Jones", "Steve Jenkins", "Bob Williams")'sløjfe igennem bunden af ​​arry og få fornavnetFor i = LBound (strName) Til UBound (strName) - 1'loop igennem igen, og kontroller, om det næste navn er alfabetisk før eller efter originalenFor j = i + 1 til UBound (strName)Hvis UCase (strName (i))> UCase (strName (j)) Så'Hvis navnet skal flyttes før det forrige navn, skal du tilføje det til et midlertidigt arrayTemp = strName (j)'byt navnenestrName (j) = strName (i)strName (i) = TempAfslut HvisNæste jNæste i'Udskriv matrixen gennem en meddelelsesboksMsgBox Join (strName (), vbCrLf)Afslut Sub

Hvis du kører denne procedure, får du følgende meddelelsesboks.

Du kan også sortere arrayet i den anden retning - f.eks .: Z til A ved at ændre denne kodelinje

1 Hvis UCase (strName (i))> UCase (strName (j)) Så

til denne kodelinje

1 Hvis UCase (strName (i)) <UCase (strName (j)) Så

Du vil derefter få følgende meddelelsesboks.

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave