Typ premennej reťazca
Dátový typ String je jedným z najbežnejších dátových typov vo VBA. Ukladá „reťazce“ textu.
Na deklarovanie premennej String premennej použijete príkaz Dim (skratka pre Dimension):
1 | Dim strName ako reťazec |
Na priradenie hodnoty premennej použijete znamienko rovnosti:
1 | strName = "Fred Smith" |
Uvedenie do postupu vyzerá takto:
12345678 | Podstr. Príklad ()“deklarujte reťazecDim strName ako reťazec“vyplňte reťazecstrName = "Fred Smith"“Zobraziť pole so správouMsgBox strnameKoniec pod |
Ak spustíte kód uvedený vyššie, zobrazí sa nasledujúce okno so správou.
Premenná pevného reťazca
V skutočnosti existujú 2 typy reťazcových premenných - fixné a variabilné.
Premenná reťazca „variabilná“ (zobrazená v predchádzajúcom príklade) umožňuje, aby mal reťazec ľubovoľnú dĺžku. Toto je najbežnejšie.
„Pevná“ premenná reťazca definuje veľkosť reťazca. Pevný reťazec môže obsahovať až 65 400 znakov.
1 | Dim strName ako reťazec *20 |
Keď definujete pevnú premennú, počet znakov v premennej sa uzamkne, aj keď použijete menej znakov.
Všimnite si medzery na obrázku nižšie - premenná má zástupné znaky pre ostatné znaky v reťazci, pretože „Fred Smith“ má menej ako 20 znakov.
Ak ste však deklarovali reťazec bez zadania dĺžky, reťazec bude obsahovať iba toľko znakov, koľko mu bolo odovzdaných.
Deklarujte premennú reťazca na úrovni modulu alebo na globálnej úrovni
V predchádzajúcom príklade ste deklarovali premennú String v rámci procedúry. Premenné deklarované pomocou postupu je možné použiť iba v rámci tohto postupu.
Namiesto toho môžete deklarovať reťazcové premenné na úrovni modulu alebo na globálnej úrovni.
Úroveň modulu
Úroveň modulu premenné sú deklarované v hornej časti modulov kódu pomocou Dim vyhlásenie.
Tieto premenné je možné použiť s akýmkoľvek postupom v tomto module kódu.
Globálna úroveň
Globálna úroveň premenné sú tiež deklarované v hornej časti modulov kódu. Avšak namiesto použitia Dim vyhlásenie, použijete Verejné vyhlásenie, ktoré naznačuje, že reťazcová premenná je k dispozícii na použitie vo vašom projekte VBA.
1 | Verejný strName ako reťazec |
Ak by ste premennú reťazca deklarovali na úrovni modulu a použili by ste ju v inom module, došlo by k chybe.
Ak však použijete na deklarovanie reťazcovej premennej kľúčové slovo Public, chyba sa nevyskytne a postup by bežal perfektne.
Previesť hodnoty uložené ako reťazec
Môže nastať čas, keď budete mať hodnoty v Exceli uložené ako text - napríklad ste mohli importovať súbor CSV, ktorý mohol namiesto čísel priniesť text.
Všimnite si toho, že hodnota v A1 je zarovnaná doľava, čo znamená textovú hodnotu.
Môžete použiť a Funkcia VBA je možné použiť na prevod týchto čísel na text
12345678 | Sub ConvertValue ()“vyplňte reťazecstrQty = rozsah ("A1")'dvojníka vyplňte reťazcomdblQty = strQty'vyplňte rozsah číslomRozsah ("A1") = dblQtyKoniec pod |
Po spustení kódu sa číslo posunie doprava, čo znamená, že je teraz uložené ako číslo.
To je obzvlášť užitočné, keď prechádzate veľkým rozsahom buniek.
123456789101112131415 | Sub ConvertValue ()Dim strQty As String, dblQty As DoubleDim rw As Integer, i As Integer'spočítajte riadky, ktoré chcete previesťrw = rozsah ("A1", rozsah ("A1"). Koniec (xlDown)). Riadky. Počet'prechádzajte bunkami a každú z nich preveďte na čísloPre i = 0 až rw - 1“vyplňte reťazecstrQty = Rozsah ("A1"). Ofset (i, 0)'dvojníka vyplňte reťazcomdblQty = strQty'vyplňte rozsah číslomRozsah ("A1"). Ofset (i, 0) = dblQtyĎalej iKoniec pod |
Výsledkom bude, že všetky bunky sa potom prevedú na čísla
Ste unavení z hľadania príkladov kódu VBA? Skúste AutoMacro!
Previesť reťazec uložený ako hodnoty
Podobne môžu existovať hodnoty, ktoré je potrebné previesť z reťazca na hodnotu - napríklad ak na telefónnom čísle požadujete počiatočnú nulu.
123456789101112131415 | Sub ConvertString ()Dim strPhone ako reťazec, dblPhone ako dvojitýDim rw As Integer, i As Integer'spočítajte riadky, ktoré chcete previesťrw = rozsah ("A1", rozsah ("A1"). Koniec (xlDown)). Riadky. Počet'prechádzajte bunkami a každú z nich preveďte na čísloPre i = 0 až rw - 1“vyplňte reťazecdblPhone = Rozsah ("A1"). Ofset (i, 0)'dvojníka vyplňte reťazcomstrPhone = "'0" & dblPhone'vyplňte rozsah číslomRozsah ("A1"). Ofset (i, 0) = strphoneĎalej iKoniec pod |
Upozorňujeme, že textový reťazec musíte začať apostrofom (‘) pred nulou, aby ste aplikácii Excel povedali, aby zadala hodnotu ako reťazec.