Excel VBA-matrixlijst

Gegevensstructuren worden gebruikt om een ​​reeks gegevens in programmeertalen op te slaan. Het bindt meer aan het geheugen dan aan het adres. Een ArrayList is een van de datastructuren in Excel. ArrayList is dynamisch in vergelijking met normale arrays in Excel. Daarom is geen initiële grootteaangifte nodig. ArrayList is geen onderdeel van VBA, het is gekoppeld aan een externe bibliotheek die kan worden gebruikt met VBA.

ArrayList kan worden gedefinieerd als een lijst met geheugenlocaties in de buurt. Waar de waarden worden opgehaald met behulp van de indexnummers. De lijst begint met een indexnummer '0', het eerste element wordt ingevoegd in de '0' index en de rest wordt gevolgd door 1, 2, 3, etc. ArrayList biedt tal van ingebouwde bewerkingen, sorteren, toevoegen, verwijderen, achteruitrijden, etc. zijn enkele daarvan.

Bibliotheek toevoegen

Om de ArrayList in de VBA te gebruiken, moet deze de bibliotheek ' mscorlib.dll' bevatten die wordt meegeleverd met .NET framework .

  • Druk op F11 of klik met de rechtermuisknop op de bladnaam om het codevenster te openen. Ga naar het VBA-codevenster en selecteer in het hoofdmenu Extra .

  • Het gereedschapsmenu bevat de optie 'referenties' en het bestaat uit een lijst met bibliotheken die VBA ondersteunt voor het opnemen van verschillende objecten. Klik op de optie Referentie .

  • Het leidt u naar een venster met een lijst met verschillende bibliotheken die in VBA en Excel ondersteunen. Scroll naar beneden om de ' dll' te vinden. Vinkje om de selectie te bevestigen en druk op de knop 'OK'.

Nu is de bibliotheek opgenomen in uw VBA-code en ondersteunt deze verschillende methoden die aan een ArrayList zijn gekoppeld.

Hoe VBA ArrayList in Excel te maken?

Hieronder staan ​​de verschillende voorbeelden om VBA ArrayList in Excel te maken.

U kunt deze VBA ArrayList Excel-sjabloon hier downloaden - VBA ArrayList Excel-sjabloon

Excel VBA ArrayList - Voorbeeld # 1

Hoe waarden aan de ArrayList toevoegen met behulp van VBA?

ArrayList fungeert als een lijst waar we waarden kunnen toevoegen. Dit wordt automatisch opgeslagen in de verschillende porties, beginnend met 0, 1, 2, enz. De waarden kunnen worden toegevoegd of toegevoegd aan de ArrayList met behulp van de methode add.

In dit voorbeeld leert u hoe u een zoeklijst kunt toevoegen aan een ArrayList. Volg de onderstaande stappen om ArrayList toe te voegen met behulp van VBA-code in Excel.

Stap 1: Om een ​​zoeklijst aan een ArrayList toe te voegen, maakt u een functiearraylist1.

Code:

 Private Sub arraylist1 () End Sub 

Stap 2: Nu willen we de ArrayList in de functie opnemen als een object waarbij een lijst als ArrayList wordt gedeclareerd.

Code:

 Private Sub arraylist1 () Dim alist As ArrayList End Sub 

Stap 3: Aangezien dit een object is om het te gebruiken, moet u een instantie van de ArrayList maken. Stel een nieuwe instantie in voor dit object.

Code:

 Private Sub arraylist1 () Dim alist As ArrayList Set alist = New ArrayList End Sub 

Stap 4: Gebruik nu de eigenschap 'Toevoegen' van een ArrayList om de waarden toe te voegen aan de ArrayList. Waar de lijst wordt toegevoegd aan de indexwaarden in een volgorde 0, 1, 2, 3 enz.

Code:

 Private Sub arraylist1 () Dim alist As ArrayList Set alist = New ArrayList alist.Add "192" 'index (0) alist.Add "168"' index (1) alist.Add "1" 'index (2) alist.Add Index "240" (3) Einde Sub 

Stap 5: Laten we controleren of de waarden aan de lijst zijn toegevoegd door de matrixwaarden af ​​te drukken met behulp van een berichtvenster. Om de waarden af ​​te drukken, wordt elke index afgedrukt, omdat de waarden in deze partities zijn opgeslagen.

Code:

 Private Sub arraylist1 () Dim alist As ArrayList Set alist = New ArrayList alist.Add "192" 'index (0) alist.Add "168"' index (1) alist.Add "1" 'index (2) alist.Add "240" 'index (3) MsgBox ("\\" & alist (0) & "." & Alist (1) & "." & Alist (2) & "." & Alist (3)) Sub Sub 

Stap 6: Druk op F5 of op de knop Uitvoeren om het programma uit te voeren en de waarden worden afgedrukt zoals hieronder. Hier wordt een IP-adres opgeslagen in de ArrayList en tijdens het afdrukken van de waarden worden extra notaties samengevoegd om het IP-adres in een goed formaat te vormen.

Automatiseringsfout in VBA

Het is een veel voorkomende fout die optreedt tijdens het uitvoeren van een ArrayList. Er kan een automatiseringsfout optreden 'Run-time Error' -2146232576 (80131700) Automation Error '

Dit komt omdat niet de juiste versie van het .NET Framework is geïnstalleerd. Als u met ArrayList wilt werken, moet u minimaal .NET 3.5 of de hogere versies van .NET Framework hebben.

Excel VBA ArrayList - Voorbeeld # 2

ArrayList sorteren met behulp van VBA-code

ArrayList ondersteunt verschillende functies zoals sorteren, omkeren, enz. Dit helpt bij het sorteren van de waarden die in een ArrayList zijn ingevoegd. Nadat u een lijst aan de ArrayList hebt toegevoegd, is het mogelijk om de ingevoegde lijst om te keren.

Volg de onderstaande stappen om de ArrayList te sorteren met behulp van VBA-code:

Stap 1: Maak een functie genaamd arraysort1 om de sortering binnen de ingevoegde waarden in een ArrayList uit te voeren.

Code:

 Subarraysort1 () Einde Sub 

Stap 2: Declareer een object 'arraysort' van de ArrayList. Gebruik dit object om de waarden in de ArrayList toe te voegen en te sorteren.

Code:

 Subarraysort1 () Dim arraysort As ArrayList End Sub 

Stap 3: Vergelijkbaar met het eerste voorbeeld moet een nieuw exemplaar van het gedeclareerde object worden gemaakt. Stel deze instantie in als een nieuwe ArrayList.

Code:

 Subarraysort1 () Arraysort dimmen als ArrayList Arraysort instellen = Nieuw ArrayList End Sub 

Stap 4: Voeg nu de 'Toevoegen'-methode toe om de elementen in de ArrayList in te voegen. Die geen volgorde van waarden bezit. Willekeurig enkele waarden in de lijst ingevoegd.

Code:

 Subarraysort1 () 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 Sub 

Stap 5: Laten we het verschil in de ArrayList noteren door de ArrayList af te drukken nadat u de waarden hebt ingevoerd en voordat u deze sorteert.

Code:

 Subarraysort1 () 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) & vbCrLf & arraysort (1) _ & vbCrLf & arraysort (2) & vbCrLf & arraysort (3) _ & vbCrLf & arraysort (4) & vbCrLf & arraysort (5)) Sub Sub 

Stap 6: Druk op F5 op het toetsenbord of op de knop uitvoeren in het codevenster om het programma uit te voeren om de ArrayList af te drukken. De ArrayList wordt afgedrukt in dezelfde volgorde als waarin deze is ingevoegd, omdat we de indexnummers in de juiste volgorde gebruiken.

Stap 7: Pas nu op deze lijst de eigenschap sort van de ArrayList toe. Gebruik de sorteermethode om de ingevoegde lijst te sorteren. De sorteereigenschap sorteert de zoeklijst standaard in oplopende volgorde.

Code:

 Subarraysort1 () 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) & vbCrLf & arraysort (1) _ & vbCrLf & arraysort (2) & vbCrLf & arraysort (3) _ & vbCrLf & arraysort (4) & vbCrLf & arraysort (5)) End Sub Sub 

Stap 8: Druk op F5 of op de knop Uitvoeren onder VBE om deze code uit te voeren, waarbij de waarden worden gesorteerd en afgedrukt in volgorde van de kleinste waarde tot de grootste.

Excel VBA ArrayList - Voorbeeld # 3

De ArrayList omkeren met behulp van VBA-code

Wanneer u de volgorde van de ingevoegde waarden in een ArrayList-methode wilt omkeren, is beschikbaar. Hiermee wordt de volgorde van de lijst omgekeerd ten opzichte van de huidige volgorde. Nu hebben we de ArrayList in het vorige voorbeeld al gesorteerd, in oplopende volgorde.

Laten we proberen de gesorteerde array om te keren om deze in afnemende volgorde te brengen. Gebruik hiervoor de omgekeerde methode van ArrayList.

Code:

 Subarraysort2 () 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) & vbCrLf & arraysort (1) _ & vbCrLf & arraysort (2) & vbCrLf & arraysort (3) _ & vbCrLf & arraysort (4) & vbCrLf & arrays 5) Sub 

Nadat u de omgekeerde methode hebt toegepast, wordt de ArrayList in aflopende volgorde en gebruikt u het berichtenvak om de omgekeerde array af te drukken. De gesorteerde lijst wordt gewijzigd van grote waarde in kleine waarde.

Dingen om te onthouden

  • ArrayList is dynamisch van aard; het vereist geen herinitialisatie.
  • Verschillende ingebouwde methoden worden geassocieerd met ArrayList.
  • In vergelijking met de array is ArrayList gemakkelijk te gebruiken in Excel VBA.
  • De ondersteunende .NET-bibliotheken moeten in de VBA worden opgenomen om met ArrayList te kunnen werken.
  • ArrayList is een doorlopende geheugenlocatie die wordt geïdentificeerd met behulp van indexwaarden.

Aanbevolen artikelen

Dit is een handleiding voor VBA ArrayList. Hier bespreken we hoe u ArrayList in Excel VBA kunt maken, samen met praktische voorbeelden en een downloadbare Excel-sjabloon. U kunt ook onze andere voorgestelde artikelen doornemen -

  1. Handleiding voor het gebruik van VBA-arrays
  2. Excel sorteren op nummer
  3. Hoe sorteer ik in Excel met VBA?
  4. Zelfstudies over sorteren in Excel

Categorie: