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 |