Ši pamoka parodys, kaip rūšiuoti reikšmes masyve VBA
Vieno matmens masyvo rūšiavimas naudojant kilpą
Masyvo rūšiavimui reikia šiek tiek manipuliuoti duomenimis, naudojant kilpas, kintamuosius ir laikinus masyvus.
- Pirmiausia turite užpildyti masyvą savo vertėmis
- Tada turėsite du kartus perjungti masyvą! Kartą, norint gauti vertę iš dabartinio elementų masyvo, o kol dar yra toje kilpoje, kad gautumėte kito masyvo elemento vertę.
- Tada turite palyginti elementus - ir perkelti antrąjį į pirmojo padėtį, jei antrasis yra abėcėlės tvarka PRIEŠ 1 -ąjį.
Žemiau pateiktas pavyzdys parodo šią procedūrą.
1234567891011121314151617181920212223 | Sub SortAnArray ()Tamsiai ilgas'Nustatykite masyvąDim strName () Kaip variantas„Dim Temp“ kaip variantas'užpildyti masyvąstrName () = masyvas („Bob Smith“, „John Davies“, „Fred Jones“, „Steve Jenkins“, „Bob Williams“)“perjunkite per arry ribą ir gaukite vardąJei i = LBound (strName) iki UBound (strName) - 1“ir dar kartą patikrinkite, ar kitas pavadinimas yra abėcėlės tvarka prieš originalą ar po joJei j = i + 1 į UBound (strName)Jei UCase (strName (i))> UCase (strName (j)) Tada'jei vardą reikia perkelti prieš ankstesnį pavadinimą, pridėkite prie laikino masyvoTemp = strName (j)'keisk vardusstrName (j) = strName (i)strName (i) = TempPabaiga JeiKitas jKitas I.„Išveskite masyvą per pranešimų laukelį„MsgBox“ prisijungimas (strName (), vbCrLf)Pabaiga Sub |
Jei atliksite šią procedūrą, gausite šį pranešimų laukelį.
Taip pat galite rūšiuoti masyvą kita kryptimi, pvz., Z į A, pakeisdami šią kodo eilutę
1 | Jei UCase (strName (i))> UCase (strName (j)) Tada |
į šią kodo eilutę
1 | Jei UCase (strName (i)) <UCase (strName (j)) Tada |
Tada gausite šį pranešimų laukelį.