Merkkijonomuuttujan tyyppi
String -tietotyyppi on yksi VBA: n yleisimmistä tietotyypeistä. Se tallentaa tekstin "merkkijonot".
Voit ilmoittaa muuttujan merkkijonomuuttujan käyttämällä Dim Statementia (lyhenne Dimension):
1 | Dim strName kuin merkkijono |
Jos haluat määrittää arvon muuttujalle, käytä yhtäsuuruusmerkkiä:
1 | strName = "Fred Smith" |
Tämän asettaminen menettelyyn näyttää tältä:
12345678 | Ala strExample ()'julistaa merkkijononDim strName merkkijonona'täytä merkkijonostrName = "Fred Smith"'näytä viestiruutuMsgBoxin strnameEnd Sub |
Jos suoritat yllä olevan koodin, seuraava viestiruutu tulee näkyviin.
Kiinteän merkkijonon muuttuja
Jousimuuttujia on itse asiassa 2 tyyppiä - kiinteä ja muuttuja.
"Muuttuva" merkkijonomuuttuja (esitetty edellisessä esimerkissä) sallii merkkijonosi olla minkä tahansa pituinen. Tämä on yleisintä.
"Kiinteä" merkkijonomuuttuja määrittää merkkijonon koon. Kiinteä merkkijono voi sisältää enintään 65 400 merkkiä.
1 | Dim strNimi merkkijonona *20 |
Kun määrität kiinteän muuttujan, muuttujan merkkien lukumäärä lukitaan paikoilleen, vaikka käytät vähemmän merkkejä.
Huomaa välilyönnit alla olevassa kuvassa - muuttujalla on paikkamerkit merkkijonon muille merkeille, koska ”Fred Smith” on alle 20 merkkiä.
Jos olet kuitenkin ilmoittanut merkkijonon määrittämättä pituutta, merkkijono sisältää vain niin monta merkkiä kuin sille annetaan.
Ilmoita merkkijonomuuttuja moduulissa tai globaalilla tasolla
Edellisessä esimerkissä olet ilmoittanut String -muuttujan menettelyn sisällä. Proseduurilla ilmoitettuja muuttujia voidaan käyttää vain kyseisen menettelyn sisällä.
Sen sijaan voit ilmoittaa merkkijonomuuttujia 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 merkkijono |
Jos ilmoitit merkkijonomuuttujan moduulitasolla ja käytät sitä toisessa moduulissa, tapahtuu virhe.
Jos kuitenkin käytät julkista avainsanaa merkkijonomuuttujan ilmoittamiseen, virhe ei ilmene ja toimenpide sujuu täydellisesti.
Muunna merkkijonoksi tallennetut arvot
Joskus Excelissä on arvoja, jotka on tallennettu tekstinä - esimerkiksi olet saattanut tuoda CSV -tiedoston, joka on saattanut tuoda tekstiä numeroiden sijasta.
Huomaa, että A1: n arvo on vasemmalle tasattu, mikä osoittaa tekstiarvon.
Voit käyttää a VBA -toiminto voidaan käyttää näiden numeroiden muuntamiseen tekstiksi
12345678 | Sub ConvertValue ()'täytä merkkijonostrQty = Alue ("A1")'Täytä tupla merkkijonolladblQty = strQty'Täytä alue numerollaAlue ("A1") = dblQtyEnd Sub |
Kun olet suorittanut koodin, numero siirtyy oikealle osoittaen, että se on nyt tallennettu numerona.
Tämä on erityisen hyödyllistä, kun selaat suuren soluvalikoiman läpi.
123456789101112131415 | Sub ConvertValue ()Dim strQty As String, dblQty As DoubleDim rw kokonaislukuna ja i kokonaislukuna'Laske muunnettavat rivitrw = Alue ("A1", Alue ("A1"). Loppu (xlDown)). Rivid.Count'kierrä solut läpi ja muunna jokainen numeroksiI = 0 - rw - 1'täytä merkkijonostrQty = Alue ("A1"). Siirtymä (i, 0)'Täytä tupla merkkijonolladblQty = strQty'täyttää alueen numerollaAlue ("A1"). Siirtymä (i, 0) = dblQtySeuraavaksi minäEnd Sub |
Tuloksena on, että kaikki solut muunnetaan sitten numeroiksi
Oletko kyllästynyt etsimään esimerkkejä VBA -koodista? Kokeile AutoMacroa!
Muunna arvoiksi tallennettu merkkijono
Samoin voi olla arvoja, jotka sinun on muutettava merkkijonosta arvoksi - esimerkiksi jos tarvitset nollaa puhelinnumerossa.
123456789101112131415 | Sub ConvertString ()Dim strPhone merkkijonona, dblPhone tuplanaDim rw kokonaislukuna ja i kokonaislukuna'Laske muunnettavat rivitrw = Alue ("A1", Alue ("A1"). Loppu (xlDown)). Rivit.Luku'kierrä solut läpi ja muunna jokainen numeroksiI = 0 - rw - 1'täytä merkkijonodblPhone = Alue ("A1"). Siirtymä (i, 0)'Täytä tupla merkkijonollastrPhone = "'0" & dblPhone'Täytä alue numerollaAlue ("A1"). Siirtymä (i, 0) = strphoneSeuraavaksi minäEnd Sub |
Huomaa, että sinun on aloitettava tekstimerkkijono heittomerkillä (’) ennen nollaa, jotta voit käskeä Excelin syöttämään arvon merkkijonona.