VBA -muunnelman tietotyyppi (Dim -muuttuja)

Vaihtoehto Muuttujatyyppi

Muuttujan muuttuja voi sisältää milloin tahansa tietoja (merkkijono, kokonaisluvut, desimaalit, objektit jne.). Jos et ilmoita muuttujatyyppiä, muuttujaa pidetään muunnelmana.

Voit ilmoittaa muuttujamuuttujan käyttämällä Dim Statementia (lyhenne Dimension):

1 Dim varName as Variant
1 Dim rng vaihtoehtona

Käytä sitten yhtäsuuruusmerkkiä määrittääksesi muuttujalle arvon:

1 varName = "Johannes"
1 rng = Arkit (1). Alue ("A1")

Tämän asettaminen menettelyyn näyttää tältä:

12345678910 Ala strExample ()'julistaa varianttejaDim strName As VariantDim rng Vaihtoehtona'täyttää muuttujatstrName = "Fred Smith"Aseta rng = Arkit (1). Alue ("A1")'täytä arkkirng.Arvo = strNameEnd Sub

Jos suoritat yllä olevan koodin, taulukon 1 solu A1 täytetään "Fred Smithillä"

Edellä ilmoitetuilla nimillä voimme päätellä, että varName sisältää tekstiä ja objSheet sisältää laskentataulukko -objektin. Mutta itse asiassa kaikenlaiset tiedot voidaan ohjata muuttujaan.

Voit täyttää yllä ilmoitetut muuttujat seuraavasti, eikä virheitä ilmenisi.

1 varName = 6
1 objSheet - "Fred"

Muuttujien käyttäminen on epätavallista, eikä sitä pidetä hyvänä käytännönä. Toisinaan muuttujat ovat kuitenkin hyödyllisiä.

Ilmoita muuttujan muuttuja moduulissa tai globaalilla tasolla

Edellisessä esimerkissä olet ilmoittanut Variant -muuttujan menettelyn sisällä. Proseduurilla ilmoitettuja muuttujia voidaan käyttää vain kyseisen menettelyn sisällä.

Sen sijaan voit ilmoittaa muuttujien muuttujia moduuli- tai globaalitasolla.

Moduulitaso

Moduulitaso muuttujat ilmoitetaan koodimoduulien yläosassa Himmeä lausunto.

Näitä muuttujia voidaan käyttää minkä tahansa koodimoduulin toimenpiteen kanssa.

Globaali taso

Globaali taso muuttujat ilmoitetaan myös koodimoduulien yläosassa. Sen sijaan, että käytät Himmeä lausunto, käytät Julkinen lause, joka osoittaa, että merkkijonomuuttuja on käytettävissä käytettäväksi koko VBA -projektisi aikana.

1 Julkinen strName kuin Variant

Jos ilmoitit variantimuuttujan moduulitasolla ja käytät sitä toisessa moduulissa, tapahtuu virhe.

Jos olisit käyttänyt julkista avainsanaa muuttujamuuttujan ilmoittamiseen, virhe ei ilmenisi ja menettely toimisi täydellisesti.

Muunnelman käyttäminen Excelin täyttämiseen

Harkitse seuraavaa menettelyä:

12345678910111213141516171819 Alatestimuuttuja'julistaa merkkijonon tuotteen nimen säilyttämiseksiDim strTuote merkkijonona'ilmoittaa kokonaisluvun tuotteen määrän säilyttämiseksiDim iQty kokonaislukuna'ilmoittaa kaksinkertaiset pitääkseen tuotteen hinnan ja kokonaishinnanDim dblHinta kaksinkertaisenaDim dblTotal kuin Double'täyttää muuttujatstrProduct = "Yleisjauhot"iQty = 3dblPrice = "5,00 dollaria"dblTotal = "$ 15.00"'täytä Excel -taulukkoAlue ("A1") = strProductAlue ("A2") = iQtyAlue ("A3") = dblHintaAlue ("A4") = dblTotalEnd Sub

Kun suoritamme tämän koodin, tapahtuu seuraava virhe.

Valitse Debug

Et voi laittaa dollarimerkkiä muuttujaan, koska muuttuja ilmoitetaan nimellä a Kaksinkertainen, eikä siksi voi tallentaa merkkijonoarvoja.

Julistaa dblHinta ja dblYhteensä muunnelmina, mikä tarkoittaa, ettet rajoitu tietotyyppiin.

1 Dim dblHinta vaihtoehtoina
1 Dim dblTotal as Variant

Suorita koodi uudelleen ja tiedot näkyvät Excel-taulukossa niin kuin pitäisi.

Huomaa, että A4- ja A5 -muotoon syötetyt tiedot muutetaan Excelissä automaattisesti numeroiksi.

Dynaamisen taulukon ilmoittaminen

Varianttimuuttujat ovat hyödyllisiä myös silloin, kun julistat dynaamisen taulukon, koska niiden avulla taulukon koko voi muuttua ajon aikana.

KanssaVaihtoehto Array, sinun ei tarvitse määrittää taulukon kokoa. Koko säätyy automaattisesti.

123456789 AlivaihtoehtoArray ()Dim arrList () Varianttina'Määrittele arvotarrList = Array (1, 2, 3, 4)'Vaihtaa arvojaarrList = Array (1,2,3,4,5,6)'Lähtöpaikka 4MsgBox arrVar (4)End Sub

Tulet auttaa kehittämään sivuston jakaminen sivu ystävillesi

wave wave wave wave wave