„VBA Dynamic Array“ („Redim & Redim Preserve“)

Ši pamoka parodys, kaip naudoti dinaminius masyvus (redim ir redim konserv) VBA.

Dinaminis masyvas

Dinaminiai masyvai yra masyvai, kurie gali keisti dydžius (priešingai nei statiniai masyvai, kurios yra statinės).

Norėdami deklaruoti dinaminį masyvą, turite deklaruoti masyvą, bet praleisti masyvo dydį:

1 Dim strNames () kaip eilutė

Tada, prieš priskirdami reikšmes savo masyvui, turite naudoti „ReDim Statement“ norėdami nustatyti norimą masyvo dydį:

1 „ReDim strNames“ (nuo 1 iki 3)

Dabar, bet kuriuo metu, kai norite pakeisti masyvo dydį, tiesiog naudokite „ReDim“ (arba „ReDim Preserve“, kaip mes sužinosime toliau).

Dinaminiai variantų masyvai

Pastaba: variantų masyvai šiek tiek skiriasi. Naudojant masyvo variantus, jums nereikia nustatyti masyvo dydžio naudojant „ReDim“ prieš priskiriant reikšmes.

12345678 Sub TestArray ()“paskelbti kintamąjįDim varNames () Kaip variantas'užpildyti masyvąvarNames () = masyvas („Fred“, „Wilma“, „Barney“, „Betty“)“grąžinkite vertybesPrisijunkite prie „MsgBox“ (varNames, „,“)Pabaiga Sub

Redimas prieš Redimo išsaugojimą

The ReDim teiginys keičia masyvo dydį, kliringo visas esamas vertybes.

The „ReDim Preserve“ teiginys keičia masyvo dydį, laikymasis („Išsaugoti“) visas esamas vertybes.

Naudojant „ReDim“

Praktiškai masyvo dydžio keitimas naudojant „ReDim“ atrodo taip:

123456789101112 Sub TestReDim ()“paskelbti eilutės masyvąDim strNames () kaip eilutėpakeiskite eilutės masyvo dydį, kad būtų galima laikyti 3 reikšmes„ReDim strNames“ (nuo 1 iki 3)masyvą užpildykite 3 pavadinimaisstrNames (1) = "Mel"strNames (2) = "Styvas"strNames (3) = "Bobas"“parodykite rezultatą tiesioginiame langeDerinti. Spausdinti prisijungimą (strNames, vbCrLf)Pabaiga Sub

Naudojant „ReDim Preserve“

Šiame pavyzdyje mes naudosime „ReDim“, kad nustatytume pradinį dinaminį masyvą, o tada „ReDim Preserve“, norėdami pakeisti masyvo dydį, laikymasis pradinės vertės:

1234567891011121314151617 Sub TestReDim ()“paskelbti eilutės masyvąDim strNames () kaip eilutėpakeiskite eilutės masyvo dydį, kad būtų galima laikyti 3 reikšmes„ReDim strNames“ (nuo 1 iki 3)'užpildyti masyvąstrNames (1) = "Mel"strNames (2) = "Styvas"strNames (3) = "Bobas"“parodykite rezultatą tiesioginiame langeDerinti. Spausdinti prisijungimą (strNames, vbCrLf)„atkurti, bet išsaugoti duomenis„ReDim Preserve strNames“ (nuo 1 iki 4)strNames (4) = "Fredas"“parodykite rezultatą tiesioginiame langeDerinti. Spausdinti prisijungimą (strNames, vbCrLf)Pabaiga Sub

Jei nenaudojate IŠSAUGOTI sakinį, prarasite duomenis, kurie anksčiau buvo masyve.

Viršutiniame lange aukščiau masyvas apgyvendino Melą, Steve'ą ir Bobą. Kai jis buvo iš naujo deklaruotas, jis pašalino šias vertes ir grąžino 3 tuščias vertes, o tada-„Fred“. Taip yra dėl IŠSAUGOTI pareiškimas praleistas.

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave