VBA eilutės duomenų tipas (Dim kintamasis)

Eilutės kintamojo tipas

Styginių duomenų tipas yra vienas iš labiausiai paplitusių duomenų tipų VBA. Jame saugomos teksto „eilutės“.

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

1 Pritemdyti pavadinimą kaip eilutė

Norėdami priskirti kintamojo vertę, naudokite lygybės ženklą:

1 strName = "Fredas Smitas"

Įtraukimas į procedūrą atrodo taip:

12345678 Antrinis pavyzdys ()“paskelbti eilutęPritemdyti strName kaip eilutė'užpildykite eilutęstrName = "Fredas Smitas"“parodyti pranešimų laukelį„MsgBox“ strname pavadinimasPabaiga Sub

Jei paleisite aukščiau esantį kodą, bus parodytas šis pranešimų langas.

Fiksuotos eilutės kintamasis

Iš tikrųjų yra 2 tipų eilutės kintamieji - fiksuotas ir kintamasis.

„Kintamasis“ eilutės kintamasis (parodyta ankstesniame pavyzdyje) leidžia jūsų eilutei būti bet kokio ilgio. Tai dažniausiai pasitaiko.

„Fiksuotas“ eilutės kintamasis apibrėžia eilutės dydį. Fiksuotoje eilutėje gali būti iki 65 400 simbolių.

1 Dim strName kaip eilutė *20

Kai apibrėžiate fiksuotą kintamąjį, simbolių skaičius kintamajame yra užrakintas, net jei naudojate mažiau simbolių.

Atkreipkite dėmesį į tarpus žemiau esančioje grafikoje - kintamasis turi vietų laikiklius likusiems eilutės simboliams, nes „Fred Smith“ yra trumpesnis nei 20 simbolių.

Tačiau, jei deklaravote eilutę nenurodydami ilgio, eilutėje bus tik tiek simbolių, kiek jai perduota.

Skelbti kintamąjį moduliu arba pasauliniu lygiu

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

Vietoj to galite deklaruoti eilutės 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 eilutė

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

Tačiau jei eilutės kintamajam deklaruoti naudosite viešą raktinį žodį, klaida neįvyks ir procedūra veiks puikiai.

Konvertuoti reikšmes, saugomas kaip eilutė

Gali būti laikas, kai „Excel“ turite reikšmių, kurios saugomos kaip tekstas - pavyzdžiui, galbūt importavote CSV failą, kuris vietoj skaičių įvedė tekstą.

Atminkite, kad A1 reikšmė lygiuojama į kairę, nurodant teksto vertę.

Galite naudoti a VBA funkcija gali būti naudojamas konvertuoti šiuos skaičius į tekstą

12345678 Sub ConvertValue ()'užpildykite eilutęstrQty = Diapazonas ("A1")'užpildykite dvigubą eilutędblQty = strQty'užpildykite diapazoną skaičiumiDiapazonas ("A1") = dblQtyPabaiga Sub

Kai paleisite kodą, numeris pereis į dešinę-tai reiškia, kad dabar jis išsaugotas kaip numeris.

Tai ypač naudinga, kai einate per daugybę langelių.

123456789101112131415 Sub ConvertValue ()Dim strQty As String, dblQty As DoubleDim rw As Integer, i As Integer“suskaičiuokite eilutes, kurias norite konvertuotirw = Diapazonas ("A1", Diapazonas ("A1"). Pabaiga (xlDown)). Eilutės. Skaičius“perjunkite langelius ir kiekvieną iš jų paverskite skaičiumiJei i = 0 iki rw - 1'užpildykite eilutęstrQty = Diapazonas ("A1"). Poslinkis (i, 0)'užpildykite dvigubą eilutędblQty = strQty'užpildykite diapazoną skaičiumiDiapazonas ("A1"). Poslinkis (i, 0) = dblQtyKitas I.Pabaiga Sub

Rezultatas bus tas, kad visos ląstelės bus paverstos skaičiais

Pavargote ieškoti VBA kodo pavyzdžių? Išbandykite „AutoMacro“!

Konvertuoti eilutę, saugomą kaip reikšmės

Panašiai gali būti reikšmių, kurias reikia konvertuoti iš eilutės į vertę, pavyzdžiui, jei telefono numerio pradžioje reikia nulio.

123456789101112131415 Subkonvertavimo eilutė ()„Dim strPhone As String“, „dblPhone As Double“Dim rw As Integer, i As Integer“suskaičiuokite eilutes, kurias norite konvertuotirw = Diapazonas ("A1", Diapazonas ("A1"). Pabaiga (xlDown)). Eilutės. Skaičius“perjunkite langelius ir kiekvieną iš jų paverskite skaičiumiJei i = 0 iki rw - 1'užpildykite eilutędblPhone = Diapazonas ("A1"). Poslinkis (i, 0)'užpildykite dvigubą eilutęstrPhone = "'0" ir dblPhone'užpildykite diapazoną skaičiumiDiapazonas ("A1"). Poslinkis (i, 0) = strphoneKitas I.Pabaiga Sub

Atminkite, kad teksto eilutę turite pradėti nuo apostrofo (‘) prieš nulį, kad nurodytumėte„ Excel “įvesti reikšmę kaip eilutę.

wave wave wave wave wave