VBA varijantni tip podataka (Dim Variable)

Varijanta Variable Type

Varijabla varijante može sadržavati podatke u bilo koje vrijeme (niz, cijeli brojevi, decimalne oznake, objekti itd.). Ako ne deklarirate vrstu varijable, vaša će se varijabla smatrati varijantom.

Za deklariranje varijable Variant koristite Dim Statement (skraćeno od Dimension):

1 Dim varName kao Variant
1 Dim rng kao Variant

Zatim, da biste dodijelili vrijednost varijabli, jednostavno upotrijebite znak jednakosti:

1 varName = "Ivan"
1 rng = Listovi (1). Raspon ("A1")

Stavljanje ovoga u postupak izgleda ovako:

12345678910 Pod strExample ()'deklarirati varijanteDim strName As VariantDim rng kao varijanta'popunite varijablestrName = "Fred Smith"Postavite rng = Listovi (1). Raspon ("A1")'popunite listrng.Vrednost = strNameKraj podm

Ako pokrenete gornji kôd, ćelija A1 u listu 1 bit će popunjena sa "Fred Smith"

Prema gore navedenim imenima mogli bismo zaključiti da je varName sadržavao bi tekst, a objSheet sadržavao bi objekt radnog lista. No, zapravo, bilo koja vrsta podataka može se usmjeriti na varijablu.

Gore navedene varijable možete popuniti na sljedeći način i neće doći do pogreške.

1 varName = 6
1 objSheet - "Fred"

Neobično je koristiti varijable i ne smatra se dobrom praksom. Međutim, ponekad su varijable varijante korisne.

Deklarirajte varijablu varijable na modulu ili globalnoj razini

U prethodnom primjeru deklarirali ste varijablu Variant unutar procedure. Varijable deklarirane postupkom mogu se koristiti samo unutar tog postupka.

Umjesto toga, varijable Variant možete deklarirati na modulu ili globalnoj razini.

Razina modula

Razina modula varijable su deklarirane na vrhu kodnih modula sa Dim izjava.

Ove se varijable mogu koristiti sa bilo kojim postupkom u tom kodnom modulu.

Globalna razina

Globalna razina varijable su također deklarirane na vrhu modula koda. Međutim, umjesto korištenja Dim izjavu, koristite Javnost izraz koji označava da je varijabla niza dostupna za korištenje u cijelom vašem VBA projektu.

1 Javni strName kao varijanta

Ako ste varijablu varijable proglasili na razini modula i koristili u drugom modulu, došlo bi do pogreške.

Da ste koristili ključnu riječ Public za deklaraciju varijable varijante, pogreška se ne bi dogodila i postupak bi savršeno funkcionirao.

Upotreba varijante za popunjavanje Excela

Razmotrite sljedeći postupak:

12345678910111213141516171819 Sub TestVariable'deklarirajte niz koji sadrži naziv proizvodaZatamni strProizvod kao niz'deklarirati cijeli broj za držanje količine proizvodaZatamnite iQty kao cijeli broj'izjavljuju da udvostručuju cijenu proizvoda i ukupnu cijenuDim dblCijena kao DoubleDim dblTotal kao Double'popunite varijablestrProduct = "Višenamjensko brašno"iQty = 3dblPrice = "5,00 USD"dblTotal = "15,00 USD"'popunite Excel tablicuRaspon ("A1") = strProductRaspon ("A2") = iQtyRaspon ("A3") = dblCijenaRaspon ("A4") = dblUkupnoKraj podm

Kada pokrenemo ovaj kôd, dolazi do sljedeće pogreške.

Pritisnite Debug

Ne možete staviti znak dolara u varijablu jer je varijabla deklarirana kao Dvostruko, pa stoga ne može pohraniti vrijednosti niza.

Proglasiti dblCijena i dblUkupno kao varijante, što znači da niste ograničeni na vrstu podataka.

1 Dim dblCijena kao varijanta
1 Dim dblTotal kao varijanta

Ponovno pokrenite kôd i podaci će se pojaviti na Excelovom listu kako bi trebali.

Imajte na umu da se podaci uneseni u A4 i A5 automatski automatski pretvaraju u Excel u brojeve.

Deklariranje dinamičkog niza

Varijable varijante također su korisne kada deklarirate dinamički niz jer dopuštaju promjenu veličine niza tijekom izvođenja.

SNiz varijanti, ne morate definirati veličinu polja. Veličina će se automatski prilagoditi.

123456789 Sub VariantArray ()Dim arrList () kao varijanta'Definirajte vrijednostiarrList = Polje (1, 2, 3, 4)'Promijenite vrijednostiarrList = Polje (1,2,3,4,5,6)'Izlazni položaj 4MsgBox arrVar (4)Kraj podm

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

wave wave wave wave wave