/ / Dinamički niz u programu Excel VBA

Dinamički niz u programu Excel VBA

Ako se veličina vašeg polja povećava i ne želite popraviti veličinu polja, možete upotrijebiti Ponovite ključnu riječ. Excel VBA a zatim automatski mijenja veličinu polja.

Dodajte neke brojeve u stupac A.

Dinamički niz u programu Excel VBA

Stavite gumb naredbe na radni list i dodajte sljedeće retke koda:

1. Prvo, izjavljujemo niz nazvanih brojeva. Također izjavljujte dvije varijable tipa Integer. Jedna imenovana veličina i jedna pod imenom i.

Dim numbers() As Integer, size As Integer, i As Integer

Napomena: polje još nema veličinu. brojevi, veličina i ja slučajno odabrani ovdje, možete koristiti bilo koja imena. Ne zaboravite uputiti na ova imena u ostatku koda.

2. Zatim određujemo veličinu polja i spremimo je u varijabilnu veličinu. Za to možete koristiti funkciju radnog lista CountA. Dodajte sljedeću liniju koda:

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

3. Sada znamo veličinu polja i možemo ga redimensionirati. Dodajte sljedeću liniju koda:

ReDim numbers(size)

4. Zatim inicijaliziramo svaki element polja. Koristimo petlju.

For i = 1 To size
    numbers(i) = Cells(i, 1).Value
Next i

5. Prikazujemo posljednji element polja koristeći MsgBox.

MsgBox numbers(size)

6. Izađite iz Visual Basic Editor i kliknite gumb naredbe na listi.

Proizlaziti:

Zadnji element retka

7. Sada kako biste jasno vidjeli zašto se to naziva dinamičnim nizom, dodajte broj u stupac A.

Dodaj Broj

8. Ponovno pritisnite gumb naredbe.

Rezultat dinamičkog raspona

Zaključak: Excel VBA automatski je promijenio veličinu ovog dinamičkog polja.

9. Kada koristite ključnu riječ ReDim, izbrisat ćete sve postojeće podatke koji su trenutno pohranjeni u polju. Na primjer, dodajte sljedeće linije koda prethodno stvorenom kodu:

ReDim numbers(3)
MsgBox numbers(1)

Proizlaziti:

Bez očuvanja

Niz je prazan.

10. Kada želite očuvati podatke u postojećem nizu kada ih ponovno zamišljate, upotrijebite ključnu riječ Očuvanje.

ReDim Preserve numbers(3)
MsgBox numbers(1)

Proizlaziti:

Sa Sačuvati

Također pročitajte: