VBA rūšiavimo masyvas

Š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į.

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave