VBA -merkkijonon tietotyyppi (Dim -muuttuja)

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.

wave wave wave wave wave