Dynamische matrix in Excel VBA - Eenvoudige Excel-macro's

Inhoudsopgave

Als de grootte van uw array toeneemt en u de grootte van de array niet wilt corrigeren, kunt u de gebruiken ReDim trefwoord. Excel VBA wijzigt vervolgens automatisch de grootte van de array.

Voeg enkele getallen toe aan kolom A.

Plaats een opdrachtknop op uw werkblad en voeg de volgende coderegels toe:

1. Eerst declareren we de array met de naam getallen. Declareer ook twee variabelen van het type Integer. Een met de naam maat en een met de naam i.

Dim getallen() als geheel getal, grootte als geheel getal, i als geheel getal

Opmerking: de array heeft nog geen grootte. nummers, grootte en ik worden hier willekeurig gekozen, u kunt alle namen gebruiken. Vergeet niet om naar deze namen te verwijzen in de rest van uw code.

2. Vervolgens bepalen we de grootte van de array en slaan deze op in de variabele grootte. U kunt hiervoor de werkbladfunctie CountA gebruiken. Voeg de volgende coderegel toe:

size = WorksheetFunction.CountA(Worksheets(1).Columns(1))

3. We kennen nu de grootte van de array en kunnen deze opnieuw dimensioneren. Voeg de volgende coderegel toe:

ReDim-nummers (grootte)

4. Vervolgens initialiseren we elk element van de array. We gebruiken een lus.

Voor i = 1 Op maat
getallen (i) = Cellen (i, 1). Waarde
volgende i

5. We geven het laatste element van de array weer met behulp van een MsgBox.

MsgBox-nummers (grootte)

6. Sluit de Visual Basic Editor af en klik op de opdrachtknop op het werkblad.

Resultaat:

7. Om nu duidelijk te zien waarom dit een dynamische array wordt genoemd, voegt u een getal toe aan kolom A.

8. Klik nogmaals op de opdrachtknop.

Conclusie: Excel VBA heeft automatisch de grootte van deze dynamische array gewijzigd.

9. Wanneer u het trefwoord ReDim gebruikt, wist u alle bestaande gegevens die momenteel in de array zijn opgeslagen. Voeg bijvoorbeeld de volgende coderegels toe aan de eerder gemaakte code:

ReDim-nummers(3)
MsgBox-nummers(1)

Resultaat:

De array is leeg.

10. Als u de gegevens in de bestaande array wilt behouden wanneer u deze opnieuw dimensioneert, gebruikt u het sleutelwoord Preserve.

ReDim Behoud nummers(3)
MsgBox-nummers(1)

Resultaat:

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave