Tablica sortowania VBA

Ten samouczek pokaże, jak sortować wartości w tablicy w VBA

Sortowanie tablicy jednowymiarowej za pomocą pętli

Sortowanie tablicy wymaga trochę manipulacji danymi za pomocą pętli, zmiennych i tablic tymczasowych.

  • Najpierw musisz wypełnić tablicę swoimi wartościami
  • Następnie musisz dwukrotnie przejść przez tablicę! Raz, aby uzyskać wartość z bieżącej tablicy elementów, a jednocześnie w tej pętli, aby uzyskać wartość następnego elementu w tablicy.
  • Następnie musisz porównać elementy - i przenieść drugi na pozycję pierwszego, jeśli drugi jest alfabetycznie PRZED pierwszym.

Poniższy przykład ilustruje tę procedurę.

1234567891011121314151617181920212223 Sub SortAnArray()Przyciemnij i tak długo'Ustaw tablicęDim strName() jako wariantDim Temp jako wariant'wypełnij tablicęstrName() = Array("Bob Smith", "John Davies", "Fred Jones", "Steve Jenkins", "Bob Williams")„przejdź przez granicę arry i zdobądź imię”For i = LBound(strName) To UBound(strName) - 1'przejdź ponownie i sprawdź, czy następna nazwa jest alfabetycznie przed czy po oryginaleFor j = i + 1 To UBound(strName)Jeśli UCase(strName(i)) > UCase(strName(j)) Wtedy'jeśli nazwa musi być przeniesiona przed poprzednią nazwą, dodaj do tablicy tymczasowejTemp = strNazwa(j)„zamień nazwy”strNazwa(j) = strNazwa(i)strNazwa(i) = TempZakończ, jeśliNastępny jDalej ja'Wyślij tablicę przez okno wiadomościMsgBox Join(strName(), vbCrLf)Napis końcowy

Jeśli uruchomisz tę procedurę, otrzymasz następujące okno komunikatu.

Możesz też posortować tablicę w innym kierunku - np.: Z na A zmieniając ten wiersz kodu

1 Jeśli UCase(strName(i)) > UCase(strName(j)) Wtedy

do tego wiersza kodu

1 Jeśli UCase(strName(i)) < UCase(strName(j)) Wtedy

Otrzymasz wtedy następujące okno komunikatu.

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave