VBA dinamički niz (Redim & Redim Preserve)

Ovaj će vodič pokazati kako koristiti dinamičke nizove (redim i redim sačuvati) u VBA -i.

Dinamički niz

Dinamički nizovi su nizovi koji mogu mijenjati veličine (za razliku od statički nizovi, koji su statični).

Za deklariranje dinamičkog niza deklarirate ga, ali izostavljate veličinu polja:

1 Dim strNames () Kao niz

Zatim, prije nego što možete dodijeliti vrijednosti svom nizu, morate upotrijebiti ReDim izraz da postavite niz na željenu veličinu:

1 ReDim strNames (1 do 3)

Sada, kad god želite promijeniti veličinu polja, jednostavno upotrijebite ReDim (ili ReDim Preserve o čemu ćemo dolje saznati).

Nizovi dinamičkih varijanti

Napomena: Varijantni nizovi su malo drugačiji. S varijantnim nizovima ne morate postavljati veličinu polja s ReDimom prije dodjeljivanja vrijednosti.

12345678 Sub TestArray ()'deklarirati varijabluDim varNames () Kao varijanta'popunite nizvarNames () = Array ("Fred", "Wilma", "Barney", "Betty")'vratiti vrijednostiMsgBox Pridruživanje (varNames, ",")Kraj podm

Redim vs. Redim Preserve

The ReDim naredba mijenja veličinu polja, raščišćavanje sve postojeće vrijednosti.

The Rezervat ReDim naredba mijenja veličinu polja, čuvanje („Očuvanje“) svih postojećih vrijednosti.

Korištenje ReDim -a

U praksi, promjena veličine niza pomoću ReDima izgleda ovako:

123456789101112 Sub TestReDim ()'deklarirati niz znakovaDim strNames () Kao niz'promijenite veličinu niza niza da biste mogli držati 3 vrijednostiReDim strNames (1 do 3)'popunite niz s 3 imenastrNames (1) = "Mel"strNames (2) = "Steve"strNames (3) = "Bob"'prikazati rezultat u neposrednom prozoruDebug.Print Join (strNames, vbCrLf)Kraj podm

Korištenje ReDim Preserve

U ovom primjeru koristit ćemo ReDim za postavljanje početnog dinamičkog niza, a zatim ReDim Preserve za promjenu veličine polja, čuvanje izvorne vrijednosti:

1234567891011121314151617 Sub TestReDim ()'deklarirati niz znakovaDim strNames () Kao niz'promijenite veličinu niza niza da biste mogli držati 3 vrijednostiReDim strNames (1 do 3)'popunite nizstrNames (1) = "Mel"strNames (2) = "Steve"strNames (3) = "Bob"'prikazati rezultat u neposrednom prozoruDebug.Print Join (strNames, vbCrLf)'Redim, ali sačuvajte podatkeReDim Očuvaj strNames (1 do 4)strNames (4) = "Fred"'prikazati rezultat u neposrednom prozoruDebug.Print Join (strNames, vbCrLf)Kraj podm

Ako ne koristite SAČUVATI izjavom, izgubili biste podatke koji su se prethodno nalazili u nizu.

U neposrednom prozoru iznad niz je naseljavao Mel, Stevea i Boba. Kad je ponovno proglašena, uklonila je te vrijednosti i umjesto toga vratila 3 prazne vrijednosti, a zatim vrijednost 'Fred'. To je zbog SAČUVATI izjava je izostavljena.

Vi ćete pomoći u razvoju web stranice, dijeljenje stranicu sa svojim prijateljima

wave wave wave wave wave