excel vba array array methods with examples
In deze tutorial worden VBA-array, verschillende array-typen, variant-array en array-methoden uitgelegd met behulp van programmeervoorbeelden:
Een gewone VBA-variabele is een tijdelijke aanduiding die de waarde van een enkele gegevens opslaat. Het heeft een 1 op 1 relatie, d.w.z. 1 variabele voor 1 waarde.
Stel je nu voor dat je meerdere waarden opslaat die van hetzelfde type zijn. In plaats van meerdere variabelen te maken, kunt u slechts één variabele maken en dezelfde soorten waarden opslaan. Deze variabele wordt een ARRAY genoemd.
Bezoek hier om de VBA-trainingsserie voor iedereen te zien
beste gratis firewall voor windows xp
In deze zelfstudie leert u wat een VBA-array, eendimensionale en tweedimensionale arrays zijn, samen met de verschillende soorten arrays zoals Fixed en Dynamic. We zullen ook verschillende arraymethoden begrijpen die in VBA worden gebruikt.
Wat je leert:
VBA-array
Arrays zijn een speciaal soort variabele die meerdere waarden van hetzelfde gegevenstype kan opslaan.
Bijvoorbeeld, als u de namen van 100 werknemers heeft, kunt u in plaats van 100 variabelen van het gegevenstype string te maken, gewoon één arrayvariabele van het type string maken en 100 waarden toewijzen aan dezelfde arrayvariabele.
Een dimensionale array
Een array met alle elementen in een enkele rij of in een enkele kolom wordt een eendimensionale array genoemd. Het vermelden van de namen van alle leerlingen in de klas in een enkele kolom is een voorbeeld van een eendimensionale matrix. Het wordt verklaard zoals hieronder weergegeven.
Dim arraynaam (ondergrens naar bovengrens) als gegevenstype
Er zijn meerdere manieren om een array te declareren. Hieronder staan een paar voorbeelden.
Voorbeeld:
# 1) Dim MyArrayExample (0 tot 3) als geheel getal
Maakt een array met locatie 0,1,2,3 die gehele getallen accepteert.
# 2) Dim MyArray2 (3) As String
De standaardinstelling is 0 tot 3 en maakt een array met locatie 0,1,2,3 die String-waarden accepteert.
# 3) Dim MyArray2 (13 tot 15) als dubbel
Maakt een array vanaf 13, d.w.z. 13, 14 en 15, en accepteert dubbele waarden. We hebben de ondergrens 13 genoemd, dus de array begint met het toewijzen van waarden vanaf locatie 13 in plaats van 0.
Laten we een eenvoudige code maken en alle drie de manieren van array-declaratie begrijpen.
Notitie: Om VB-code te schrijven Open Microsoft Excel (ondersteunde versies zijn Excel 2007, 2010, 2013, 2016, 2019). Navigeren naar Ontwikkelaarstabblad -> Visual Basic (U kunt ook de sneltoets Alt + F11 gebruiken). Klik in de VB-editor op Invoegen -> Module en plak de onderstaande code.
Beschouw de onderstaande procedure waarin de verschillende soorten aangiften worden weergegeven.
Druk op F5 of druk op de knop Uitvoeren op de werkbalk om de code uit te voeren.
Regelmatige variabele versus array-variabele
We weten nu hoe een eendimensionale array werkt. Laten we dus even de tijd nemen om te begrijpen waarom arrays zo cruciaal zijn in programmeertalen.
Stel dat u het salaris van 5 medewerkers moet invullen. Om dit te bereiken met een reguliere variabele, moet u 5 variabelen maken.
Laten we nu dezelfde code bouwen met een Array-variabele.
Hier hebben we zojuist één matrixvariabele gebruikt waarin alle namen van werknemers worden opgeslagen. Stel dat u 100 extra werknemersnamen moet toevoegen, dan hoeft u alleen de arraygrootte te wijzigen en hoeft u geen nieuwe variabele te maken.
Dit vermindert het aantal regels in de code en maakt deze daardoor gemakkelijk te begrijpen en leesbaar.
Tweedimensionale array
Een tweedimensionale array heeft 2 indexen - de eerste index vertegenwoordigt de rijen en de tweede index vertegenwoordigt de kolom. Het heeft meerdere rijen en kolommen en wordt meestal weergegeven in een tabelformaat.
De declaratie van een 2 dim array is als volgt:
Dim ArrayName (FirstIndex naar LastIndex, FirstIndex naar LastIndex) As DataType.
Beschouw een voorbeeld van het opslaan van cijfers van 2 studenten behaald in 3 vakken. We zullen dus een tweedimensionale array maken met 2 rijen en 3 kolommen.
We starten de array van rij 1 tot rij 2 en van kolom 1 tot kolom 3.
Druk op F5 of druk op de knop Uitvoeren op de werkbalk om de code uit te voeren.
Rij 2 en kolom 2
Rij 1 en kolom 3
Vaste arrays
Fixed Arrays, ook wel Static Arrays genoemd, hebben een vaste ondergrens en bovengrens en deze grootte kan niet tijdens runtime worden gewijzigd. De grootte van de array wordt gespecificeerd tijdens de declaratie tussen haakjes. Alle bovenstaande voorbeelden zijn vaste arrays, aangezien we de grootte ervan tijdens de declaratie hebben vermeld.
Vaste arrays worden meestal gebruikt als u zeker weet hoe groot de array is. Bijvoorbeeld, het aantal dagen in een week, kunt u een array maken met ondergrens 0 en bovengrens 6 en er zeker van zijn dat u de grootte nooit verandert.
Dynamische arrays
Met dynamische arrays kunnen we de grootte van de array tijdens de uitvoering wijzigen. Deze zijn handig als u niet zeker weet hoe groot de array is. Stel dat u bij toelating tot de universiteit niet zeker weet hoeveel studenten daadwerkelijk de toelating krijgen, dus u kunt de grootte niet bepalen bij het ontwerp of de aangifte.
De declaratie van een dynamische array is vergelijkbaar met een statische array met lege haakjes.
Dim Employee () As String
REDIM
Als we de maat willen veranderen, moeten we REDIM moeten we opmerken dat de ondergrens niet kan worden gewijzigd, we kunnen alleen de bovengrens van de array wijzigen.
Nu weten we dat we de grootte van de array tijdens runtime kunnen wijzigen, daarom kunnen we de ReDim-instructie gebruiken wanneer we de ubound van een array moeten vergroten. Laten we proberen de array nog een keer te vergroten en een nieuwe leerlingnaam toe te voegen.
Je zou hebben opgemerkt dat het resultaat niet de namen van de eerder toegevoegde studenten liet zien, het geeft een nulwaarde. Dat komt omdat de Redim-instructie een nieuwe array met een nieuwe grootte zal maken en de oude waarden zal vernietigen.
ReDim behouden
Represerve-instructie helpt ons bij het overwinnen van de beperking van ReDim door de oude waarden te behouden en daardoor de grootte van de array te vergroten.
Laten we de bovenstaande code herschrijven met ReDim Preserve.
Aangezien we het trefwoord behouden hebben gebruikt, gaan de eerder ingevoerde waarden niet verloren en wordt de nieuwe waarde met succes toegevoegd.
Variant Array
Tot nu toe hebben we een array gezien die hetzelfde type waarden accepteert. Laten we nu de array als een variant declareren en de verschillende soorten gegevens, zoals String, Date, Long, Integer in één array opslaan.
Voorbeeld:
VBA-array-methoden
Er zijn verschillende methoden in VBA-arrays die ons zullen helpen om verschillende functies uit te voeren, zoals hieronder vermeld.
Sl. Nee | Naam | Syntaxis | Omschrijving |
---|---|---|---|
7 | Doe mee | Join (sourcearray, (delimiter)) | Voegt meerdere subtekenreeksen in een array samen en retourneert een tekenreekswaarde. |
1 | Array | Array (frauduleus) | Converteert een gewone variant variabele in een array. |
twee | Wissen | Wis de arraynaam | Wordt gebruikt om de array met vaste grootte opnieuw te initialiseren en maakt het geheugen vrij voor Dynamic array. |
3 | IsArray | IsArray (variabelenaam) | Bepaalt of een variabele een array is. |
4 | Lbound | LBound (ArrayName, (Dimension)) | Retourneert het laagste subscript van een array. |
5 | Ubound | UBound (ArrayName, (Dimension)) | Retourneert het hoogste subscript van een array. |
6 | Splitsen | Splitsen (uitdrukking, (scheidingsteken, (limiet, (vergelijk)))) | Het verdeelt een string in meerdere subtekenreeksen en retourneert een op nul gebaseerde array. |
8 | Filter | Filter (sourcearray, match, (include, (vergelijk))) | Met filter kunnen we een opgegeven overeenkomst uit een array. |
Laten we ze allemaal in detail bespreken met een voorbeeld.
# 1) Array
Laten we een reguliere variantvariabele declareren en deze als array gebruiken. Als je een reguliere variantvariabele in een array wilt veranderen, moeten we een ARRAY functie zoals getoond in het onderstaande voorbeeld.
Array-functies accepteren een argument dat door komma's gescheiden waarden bevat. Deze waarden worden toegewezen als een element van de array.
U moet een arrayvariabele identificeren met behulp van een index, daarom worden in het bovenstaande voorbeeld de waarden opgehaald als varData (0) varData (2) varData (3).
# 2) Wissen
Deze functie wist alle waarden die zijn ingevoerd voor een array met een vaste grootte en maakt geheugenruimte vrij voor een dynamische array.
Syntaxis: wis de arraynaam
Erase heeft een ander gedrag voor verschillende gegevenstypen, zoals hieronder wordt weergegeven.
- Voor een vast getal: Alle waarden worden op nul gereset.
- Voor een gegevenstype met vaste tekenreeks: Alle waarden worden gereset naar lengte nul.
- Voor een dynamische array: Maakt het geheugen vrij dat door de array wordt gebruikt.
Voorbeeld:
Resultaat voordat u de functie Wissen gebruikt
Resultaat na gebruik van Wissen
# 3) IsArray
Deze functie wordt gebruikt om te bepalen of de opgegeven invoervariabele een array is of niet. Het retourneert true als de ingevoerde variabele waar is, anders geeft het false.
Syntaxis: IsArray (variabelenaam)
Voorbeeld:
Het resultaat van de eerste Msgbox
Het resultaat van de tweede msgbox
# 4) Lbound
Het retourneert het laagste subscript van de array die is opgegeven als het argument voor de functie Lbound.
Syntaxis: LBound (ArrayName, (Dimension))
ArrayName is de naam van de array.
Dimensie is de optionele gehele waarde. Als de array meerdere dimensies heeft, kunt u opgeven tot welke dimensie u de Lbound wilt bepalen.
Voorbeeld:
# 5) Ubound
Het retourneert het bovenste subscript van de array die is opgegeven als een argument in de Ubound-functie.
Syntaxis: UBound (ArrayName, (Dimension))
ArrayName is de naam van de array.
Dimensie is de optionele gehele waarde, als de array meerdere dimensies heeft, kunt u aangeven voor welke dimensie u de Ubound wilt bepalen.
Voorbeeld:
# 6) Splitsen
Het retourneert een array met een aantal subtekenreeksen afgeleid van de opgegeven hele string.
Syntaxis: Split (uitdrukking, (scheidingsteken, (limiet, (vergelijk))))
- Uitdrukking: Dit is de hele string die zal worden gebruikt om substrings te produceren.
- Scheidingsteken: Met behulp van het opgegeven scheidingsteken worden subtekenreeksen gegenereerd. Als dit niet wordt vermeld, wordt de spatie als scheidingsteken beschouwd.
- Begrenzing: Aantal te retourneren subtekenreeksen.
- Vergelijken: Nadat de substring is geproduceerd, kunt u verschillende vergelijkingsopties gebruiken om het resultaat te testen.
Voorbeeld: In het onderstaande voorbeeld gebruiken we scheidingsteken als - en limiet als 3.
Daarom zal de split-functie de hele string in substring scheiden op basis van het scheidingsteken. Maar we hebben de limiet ook genoemd als 3, zodat er geen substrings worden gevormd na de limiet 3. Het laatste scheidingsteken wordt dus overgeslagen.
# 7) Doe mee
Dit is precies het omgekeerde van de splitsing. Join zal één string maken door verschillende subtekenreeksen te combineren.
Syntaxis: Join (sourcearray, (delimiter))
Bronmatrix: Eendimensionale reeks strings die u tot één wilt samenvoegen.
Scheidingsteken: Een gespecificeerd scheidingsteken wordt toegevoegd na elke string tijdens het samenvoegen.
Voorbeeld:
hoe torrent-bestanden te openen op Windows 10
Alle 3 waarden worden samengevoegd en wordt tussen elk woord geplaatst, zoals we hebben genoemd als scheidingsteken.
# 8) Filter
Met het filter kunnen we zoeken naar een opgegeven overeenkomst in een array. Op basis van de filtercriteria wordt de subset van een reeksreeksen geretourneerd.
Syntaxis: Filter (sourcearray, match, (include, (vergelijk)))
Voorbeeld:
In dit voorbeeld wordt met behulp van de filterfunctie naar het woord 'help' in alle array-tekenreeksen gezocht.
Veel Gestelde Vragen
V # 1) Hoe de lengte van een array in VBA te krijgen?
Antwoord: Om de lengte van een array te krijgen, gebruiken we de Ubound-functie. Deze functie geeft ons een hoger subscript van een opgegeven array.
Vraag 2) Hoe declareer ik een array in VBA?
Antwoord: Een eendimensionale array wordt gedeclareerd zoals hieronder weergegeven.
Dim arraynaam (ondergrens naar bovengrens) als gegevenstype
Voorbeeld: Dim Myarray (0 tot 2) als geheel getal
Een tweedimensionale array wordt gedeclareerd zoals hieronder weergegeven.
Dim ArrayName (FirstIndex naar LastIndex, FirstIndex naar LastIndex) As DataType.
Voorbeeld: Dimtekens (1 tot 3, 0 tot 2) als geheel getal
Vraag 3) Hoe bereik ik een array om te zetten?
Antwoord: We kunnen de functie Transpose gebruiken om het bereik naar een array te converteren. Deze code maakt Mys (10)
Q # 4) Wat is een array-variant in VBA?
Antwoord: Een variantarray accepteert alle soorten gegevenstypen voor zijn index, d.w.z. u kunt verschillende soorten waarden in een enkele array opslaan.
Voorbeeld:
Dim arrayData (3) als variant
arrayData (0) = 'Vikas Vipal'
arrayData (1) = 411234567890 #
V # 5) Wat is een optie-basisverklaring?
Antwoord: Dit wordt gebruikt om het lagere subscript van een array te declareren en wordt gebruikt aan het begin van een module. Standaard is het lagere subscript 0 als u Option Base 1 op moduleniveau declareert, dan is voor alle arrays het standaard lagere subscript 1.
Gevolgtrekking
In deze tutorial hebben we geleerd hoe arrays worden gebruikt in VBA en we hebben gezien hoe arrays verschillen van een gewone variabele. We hebben eendimensionale en tweedimensionale arrays onderzocht met voorbeelden. We hebben ook gesproken over vaste en dynamische arrays.
De manieren om het formaat van de array tijdens runtime te wijzigen en ook de waarden te behouden met behulp van redim-behoud, werden besproken met voorbeelden. Ten slotte hebben we Array-methoden geleerd die ons zullen helpen bij het uitvoeren van verschillende bewerkingen.
Bekijk hier ALLE VBA-tutorials
Aanbevolen literatuur
- Excel VBA-zelfstudie - Inleiding tot VBA in Excel
- VBA-gegevenstypen - numerieke en niet-numerieke gegevenstypen in VBA
- VBA-variabelen en optie expliciet in VBA
- Keer een array in Java om - 3 methoden met voorbeelden
- Zelfstudie over Java-array-lengte met codevoorbeelden
- Jagged Array in Java - Tutorial met voorbeelden
- Array-gegevenstypen - int Array, Double array, Array of Strings Etc.
- String Array C ++: implementatie en weergave met voorbeelden