Excel VBA ArrayList
Struktury danych służą do przechowywania szeregu danych w językach programowania. Łączy się z pamięcią, a nie z adresem. ArrayList jest jedną ze struktur danych w programie Excel. W porównaniu do zwykłych tablic w programie Excel ArrayList jest dynamiczny. Dlatego nie jest wymagana wstępna deklaracja wielkości. ArrayList nie jest częścią VBA, jest powiązany z zewnętrzną biblioteką, z której można korzystać w VBA.
ArrayList można zdefiniować jako listę pobliskiej lokalizacji pamięci. Gdzie wartości są pobierane za pomocą numerów indeksowych. Lista zaczyna się od numeru indeksu „0”, pierwszy element zostanie wstawiony do indeksu „0”, a po nim następuje 1, 2, 3 itd. ArrayList oferuje wiele wbudowanych operacji, sortowanie, dodawanie, usuwanie, cofanie itp. to niektóre z nich.
Dodawanie biblioteki
Aby użyć ArrayList w VBA, musi ona zawierać bibliotekę „ mscorlib.dll”, która jest dostarczana ze środowiskiem .NET .
- Naciśnij klawisz F11 lub kliknij prawym przyciskiem myszy nazwę arkusza, aby wyświetlić okno kodu. Przejdź do okna kodu VBA, z menu głównego wybierz Narzędzia .
- Menu narzędzi zawiera opcję „referencje” i składa się z listy bibliotek, które obsługują VBA do włączania różnych obiektów. Kliknij opcję Odniesienie .
- Poprowadzi Cię do okna z listą różnych bibliotek, które obsługuje VBA i Excel. Przewiń w dół, aby znaleźć „ dll”. Zaznacz znacznik, aby potwierdzić wybór, a następnie naciśnij przycisk „OK”.
Teraz biblioteka jest zawarta w kodzie VBA i będzie obsługiwać różne metody powiązane z ArrayList.
Jak utworzyć VBA ArrayList w Excelu?
Poniżej znajdują się różne przykłady tworzenia VBA ArrayList w programie Excel.
Możesz pobrać ten szablon VBA ArrayList Excel tutaj - szablon VBA ArrayList ExcelExcel VBA ArrayList - Przykład nr 1
Jak dodać wartości do ArrayList za pomocą VBA?
ArrayList działa jako lista, na której możemy dodawać wartości. Spowoduje to automatyczne zapisanie w różnych porcjach, zaczynając od 0, 1, 2 itd. Wartości można dodać lub wstawić do ArrayList przy użyciu metody add.
W tym przykładzie dowiesz się, jak dodać listę wartości do ArrayList. Wykonaj poniższe kroki, aby dodać ArrayList przy użyciu kodu VBA w programie Excel.
Krok 1: Aby dodać listę wartości do ArrayList, utwórz funkcję arraylist1.
Kod:
Prywatna podrzędna arraylist1 () End Sub
Krok 2: Teraz chcemy włączyć ArrayList do funkcji jako obiekt, w którym lista jest zadeklarowana jako ArrayList.
Kod:
Sub prywatny arraylist1 () Dim alist As ArrayList End Sub
Krok 3: Ponieważ jest to obiekt, aby go użyć, musisz utworzyć instancję ArrayList. Ustaw nową instancję dla tego obiektu.
Kod:
Sub prywatny arraylist1 () Dim alist As ArrayList Set alist = New ArrayList End Sub
Krok 4: Teraz użycie właściwości „Dodaj” ArrayList dodaje wartości do ArrayList. Gdy lista jest dodawana do wartości indeksu w kolejności 0, 1, 2, 3 itd.
Kod:
Private Sub arraylist1 () Dim alist As ArrayList Set alist = Nowa lista ArrayList alist.Dodaj indeks „192” (0) alist.Dodaj indeks „168” (1) alist.Dodaj indeks „1” (2) alist.Add Indeks „240” (3) Koniec Sub
Krok 5: Aby sprawdzić, czy wartości zostały dodane do listy, wydrukujmy wartości tablic za pomocą okna komunikatu. Aby wydrukować wartości, drukowany jest każdy indeks, ponieważ wartości są przechowywane w tych partycjach.
Kod:
Private Sub arraylist1 () Dim alist As ArrayList Set alist = Nowa lista ArrayList alist.Dodaj indeks „192” (0) alist.Dodaj indeks „168” (1) alist.Dodaj indeks „1” (2) alist.Add Indeks „240” (3) MsgBox („\\” i alist (0) i „.” I alist (1) i „.” I alist (2) i „.” I alist (3)) End Sub
Krok 6: Naciśnij F5 lub przycisk Uruchom, aby uruchomić program, a wartości zostaną wydrukowane jak poniżej. Tutaj adres IP jest przechowywany w ArrayList i podczas drukowania wartości dodatkowe notacje są łączone w celu utworzenia adresu IP w odpowiednim formacie.
Błąd automatyzacji w VBA
Jest to częsty błąd występujący podczas uruchamiania ArrayList. Błąd automatyzacji może napotkać „Błąd czasu wykonania” -2146232576 (80131700) Błąd automatyzacji ”
Wynika to z niepoprawnej instalacji frameworku .NET. Aby pracować z ArrayList, musisz mieć minimum .NET 3.5 lub wyższe wersje .NET Framework.
Excel VBA ArrayList - Przykład # 2
Sortowanie ArrayList przy użyciu kodu VBA
ArrayList obsługuje różne funkcje, takie jak sortowanie, odwracanie itp., Co pomaga w sortowaniu wartości wstawionych do ArrayList. Po dodaniu listy do ArrayList możliwe jest odwrócenie wstawionej listy.
Wykonaj poniższe kroki, aby posortować ArrayList za pomocą kodu VBA:
Krok 1: Utwórz funkcję o nazwie arraysort1, aby wykonać sortowanie w obrębie wstawionych wartości do ArrayList.
Kod:
Sub arraysort1 () End Sub
Krok 2: Zadeklaruj obiekt „arraysort” ArrayList. Ten obiekt służy do dodawania i sortowania wartości w ArrayList.
Kod:
Sub arraysort1 () Dim arraysort As ArrayList End Sub
Krok 3: Podobnie jak w pierwszym przykładzie, należy utworzyć nową instancję zadeklarowanego obiektu. Ustaw to wystąpienie jako nową ArrayList.
Kod:
Sub arraysort1 () Dim arraysort As ArrayList Set arraysort = New ArrayList End Sub
Krok 4: Teraz korzystając z metody „Dodaj” wstaw elementy do ArrayList. Który nie ma żadnego porządku wartości. Losowo wstawiono niektóre wartości do listy.
Kod:
Sub arraysort1 () Dim arraysort As ArrayList Set arraysort = New ArrayList arraysort.Add „13” arraysort.Add „21” arraysort.Add „67” arraysort.Add „10” arraysort.Add „12” arraysort.Add „45” End Pod
Krok 5: Aby zauważyć różnicę w ArrayList, wydrukujmy ArrayList po wstawieniu wartości i przed posortowaniem.
Kod:
Sub arraysort1 () Dim arraysort As ArrayList Set arraysort = New ArrayList arraysort.Add "13" arraysort.Add "21" arraysort.Add "67" arraysort.Add "10" arraysort.Add "12" arraysort.Add "45" MsgBox (arraysort (0) i vbCrLf i arraysort (1) _ i vbCrLf i arraysort (2) i vbCrLf i arraysort (3) _ i vbCrLf i arraysort (4) oraz vbCrLf i arraysort (5)) End Sub
Krok 6: Naciśnij klawisz F5 na klawiaturze lub przycisk Uruchom w oknie kodu, aby uruchomić program, aby wydrukować ArrayList. ArrayList jest drukowany w tej samej kolejności, w jakiej jest wstawiany, ponieważ korzystamy z numerów indeksów we właściwej kolejności.
Krok 7: Teraz do tej listy zastosuj właściwość sort ArrayList. Użyj metody sortowania, aby posortować wstawioną listę. Właściwość sort domyślnie posortuje listę wartości w porządku rosnącym.
Kod:
Sub arraysort1 () Dim arraysort As ArrayList Set arraysort = New ArrayList arraysort.Add „13” arraysort.Add „21” arraysort.Add „67” arraysort.Add „10” arraysort.Add „12” arraysort.Add „45” arraysort .Sort MsgBox (arraysort (0) i vbCrLf i arraysort (1) _ i vbCrLf i arraysort (2) i vbCrLf i arraysort (3) _ i vbCrLf i arraysort (4) oraz vbCrLf i arraysort (5)
Krok 8: Naciśnij F5 lub przycisk Uruchom pod VBE, aby uruchomić ten kod, gdzie wartości są sortowane i drukowane w kolejności od najmniejszej do największej.
Excel VBA ArrayList - Przykład nr 3
Odwracanie ArrayList przy użyciu kodu VBA
Gdy chcesz odwrócić kolejność wstawianych wartości w ArrayList, dostępna jest metoda odwrotna. Spowoduje to odwrócenie kolejności listy od jej bieżącej kolejności. Teraz posortowaliśmy ArrayList w poprzednim przykładzie, który jest w porządku rosnącym.
Spróbujmy odwrócić posortowaną tablicę, aby była malejąca. Aby to zrobić, użyj metody odwrotnej ArrayList.
Kod:
Sub arraysort2 () Dim arraysort As ArrayList Set arraysort = New ArrayList arraysort.Add "13" arraysort.Add "21" arraysort.Add "67" arraysort.Add "10" arraysort.Add "12" arraysort.Add "45" arraysort .Sort arraysort.Reverse MsgBox (arraysort (0) i vbCrLf i arraysort (1) _ & vbCrLf i arraysort (2) i vbCrLf i arraysort (3) _ i vbCrLf i arraysort (4) i vbCrLf i) End Pod
Po zastosowaniu metody odwrotnej ArrayList stanie się w porządku malejącym i użyje okna komunikatu do wydrukowania odwróconej tablicy. Posortowana lista została zmieniona z dużej na małą.
Rzeczy do zapamiętania
- ArrayList ma charakter dynamiczny; nie wymaga ponownej inicjalizacji.
- Różne wbudowane metody są powiązane z ArrayList.
- W porównaniu z tablicą ArrayList jest łatwy w użyciu w Excel VBA.
- Obsługujące biblioteki .NET powinny być zawarte w VBA, aby współpracować z ArrayList.
- ArrayList to ciągła lokalizacja pamięci identyfikowana za pomocą wartości indeksu.
Polecane artykuły
To jest przewodnik po VBA ArrayList. Tutaj omawiamy sposób tworzenia ArrayList w Excel VBA wraz z praktycznymi przykładami i szablonem Excel do pobrania. Możesz także przejrzeć nasze inne sugerowane artykuły -
- Przewodnik po użyciu tablic VBA
- Excel Sortuj według numeru
- Jak sortować w programie Excel za pomocą VBA?
- Samouczki na temat sortowania w programie Excel