VBA varianto duomenų tipas (Dim kintamasis)

Variantas Kintamojo tipas

Kintamasis kintamasis gali turėti bet kurio laiko duomenis (eilutes, sveikuosius skaičius, dešimtainius skaičius, objektus ir kt.). Jei nepaskelbsite kintamojo tipo, jūsų kintamasis bus laikomas variantu.

Norėdami deklaruoti kintamąjį, naudokite „Dim Statement“ (santrumpa „Dimension“):

1 Dim varName kaip Variant
1 Dim rng kaip variantas

Tada, norėdami priskirti kintamojo vertę, tiesiog naudokite lygybės ženklą:

1 varName = "Jonas"
1 rng = lakštai (1). Diapazonas ("A1")

Įtraukimas į procedūrą atrodo taip:

12345678910 Antrinis pavyzdys ()“skelbti variantusDim strName As VariantDim rng Kaip variantas“užpildykite kintamuosiusstrName = "Fredas Smitas"Nustatykite rng = Lakštai (1). Diapazonas („A1“)“užpildykite lapąrng.Value = strNamePabaiga Sub

Jei paleisite aukščiau esantį kodą, 1 lapo A1 langelis bus užpildytas „Fred Smith“

Remdamiesi aukščiau pateiktais pavadinimais, galime daryti išvadą, kad varName būtų teksto, o objSheet būtų darbalapio objektas. Bet iš tikrųjų bet kokio tipo duomenys gali būti nukreipti į kintamąjį.

Aukščiau nurodytus kintamuosius galite užpildyti taip, ir klaida neįvyks.

1 varName = 6
1 objSheet - „Fredas“

Įprastas kintamųjų naudojimas yra neįprastas ir nėra laikoma gera praktika. Tačiau kartais kintamųjų variantai yra naudingi.

Skelbti kintamąjį kintamuoju modulio ar pasauliniu lygiu

Ankstesniame pavyzdyje procedūros metu nurodėte kintamąjį Variant. Kintamieji, deklaruojami naudojant procedūrą, gali būti naudojami tik tos procedūros metu.

Vietoj to galite deklaruoti kintamuosius kintamuosius modulio ar visuotiniu lygiu.

Modulio lygis

Modulio lygis kintamieji deklaruojami kodo modulių viršuje su Mat pareiškimas.

Šiuos kintamuosius galima naudoti atliekant bet kokias to kodo modulio procedūras.

Pasaulinis lygis

Pasaulinis lygis kintamieji taip pat deklaruojami kodo modulių viršuje. Tačiau, užuot naudoję Mat teiginį, jūs naudojate Viešas teiginys, nurodantis, kad eilutės kintamąjį galima naudoti visame jūsų VBA projekte.

1 Viešas strName kaip variantas

Jei deklaruojate kintamąjį modulio lygiu ir naudojate kitame modulyje, įvyks klaida.

Jei pasirinkote kintamąjį naudodami viešąjį raktinį žodį, klaida neįvyktų ir procedūra vyktų puikiai.

Varianto naudojimas „Excel“ užpildyti

Apsvarstykite šią procedūrą:

12345678910111213141516171819 Antrinis kintamasis“deklaruokite eilutę, kurioje būtų produkto pavadinimasDim strProduct kaip eilutė“deklaruokite sveiką skaičių, kad išlaikytumėte produkto kiekįDim iQty kaip sveikasis skaičius“deklaruokite dvigubai, kad išlaikytumėte produkto kainą ir bendrą kainąDim dbl Kaina dvigubaDim dbl Iš viso kaip dvigubas“užpildykite kintamuosiusstrProduct = "Visi universalūs miltai"iQty = 3dblPrice = "5,00 USD"dblTotal = "15,00 USD"“užpildykite„ Excel “lapąDiapazonas ("A1") = strProductDiapazonas ("A2") = iQtyDiapazonas ("A3") = dblKainaDiapazonas („A4“) = dblPabaiga Sub

Kai vykdome šį kodą, įvyksta ši klaida.

Spustelėkite Derinti

Negalite į kintamąjį įdėti dolerio ženklo, nes kintamasis deklaruojamas kaip a Dvigubas, todėl negali saugoti eilučių reikšmių.

Paskelbti dblKaina ir dblVisa kaip variantai, o tai reiškia, kad neapsiribojate tik duomenų tipu.

1 Dim dblKaina kaip variantas
1 Dim dblTotal as Variant

Paleiskite kodą iš naujo ir duomenys bus rodomi „Excel“ lape, kaip turėtų.

Atminkite, kad į A4 ir A5 įvesti duomenys automatiškai konvertuojami „Excel“ į skaičius.

Dinaminio masyvo paskelbimas

Kintamieji variantai taip pat yra naudingi, kai deklaruojate dinaminį masyvą, nes jie leidžia keisti masyvo dydį vykdymo metu.

SuVariantų masyvas, jums nereikia apibrėžti masyvo dydžio. Dydis bus automatiškai sureguliuotas.

123456789 SubvariantasArray ()Dim arrList () Kaip variantas„Apibrėžkite vertybesarrList = Masyvas (1, 2, 3, 4)'Keisti vertesarrList = Masyvas (1,2,3,4,5,6)„Išvesties padėtis 4„MsgBox arrVar“ (4)Pabaiga Sub

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

wave wave wave wave wave