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ę.