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 Excel

Excel 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 -

  1. Przewodnik po użyciu tablic VBA
  2. Excel Sortuj według numeru
  3. Jak sortować w programie Excel za pomocą VBA?
  4. Samouczki na temat sortowania w programie Excel

Kategoria: