Sortowanie danych tekstowych w kolejności alfabetycznej za pomocą VBA w Microsoft Excel

Spisie treści

W tym artykule stworzymy niestandardową funkcję sortowania danych w kolejności alfabetycznej.

Surowe dane składają się z losowych nazw, które chcemy posortować.

Wyjaśnienie logiczne

Stworzyliśmy niestandardową funkcję „SortString”, aby sortować dane alfabetycznie. Pobiera zakres źródłowy i pozycję jako dane wejściowe i zwraca wartości na podstawie określonej pozycji. Ta funkcja najpierw tworzy posortowaną tablicę, a następnie określona pozycja jest używana do wyodrębnienia wymaganej wartości z posortowanej tablicy.

Wyjaśnienie kodu

UBound(wartości)

Powyższa funkcja służy do uzyskania liczby wartości w tablicy.

wartości(j) = wartości(j - 1)

Powyższy kod służy do przesuwania wartości w tablicy o jeden indeks.

Proszę postępować zgodnie z poniższym kodem!

 Opcja Funkcja jawna SortString(Source As Range, Position As Long) As String 'Deklarowanie zmiennych Dim Cell As Range Dim wartości() As String Dim i As Long, j As Long Dim Gotowe As Boolean Wartości ReDim(1 do 1) 'Przechodzenie w pętlę wszystkie komórki w zakresie For Each Cell In Source Done = False i = 1 'Tworzenie tablicy posortowanych nazw Do If Cell.Value < wartości(i) Then Done = True Else i = i + 1 End If Loop While Done = False And i <= UBound(wartości) ReDim Zachowaj wartości(1 To UBound(wartości) + 1) If i <= UBound(wartości) Then 'Dostosowywanie wartości w posortowanej tablicy nazw For j = UBound(wartości) To i + 1 Krok - 1 values(j) = values(j - 1) Next j End If values(i) = Cell.Value Next Cell 'Przypisywanie wartości wymaganej pozycji SortString = values(Position + 1) End Function 

Jeśli podobał Ci się ten blog, podziel się nim ze znajomymi na Facebooku. Możesz również śledzić nas na Twitterze i Facebooku.

Chcielibyśmy usłyszeć od Ciebie, daj nam znać, jak możemy poprawić naszą pracę i uczynić ją lepszą dla Ciebie. Napisz do nas na stronie e-mail

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

wave wave wave wave wave