Vrsta varijable niza
Tip podataka String jedan je od najčešćih tipova podataka u VBA -i. Pohranjuje "nizove" teksta.
Da biste deklarirali varijablu String varijablu, koristite Dim Statement (skraćeno od Dimension):
1 | Dim strName kao String |
Za dodjeljivanje vrijednosti varijabli koristite znak jednakosti:
1 | strName = "Fred Smith" |
Stavljanje ovoga u postupak izgleda ovako:
12345678 | Pod strExample ()'deklarirati nizZatamni strName kao niz'popunite nizstrName = "Fred Smith"'prikazati okvir s porukomMsgBox strnameKraj podm |
Ako pokrenete gornji kôd, prikazat će se sljedeći okvir s porukom.
Fiksna varijabla niza
Zapravo postoje dvije vrste string varijabli - fiksne i varijabilne.
Varijabla niza "varijabla" (prikazana u prethodnom primjeru) dopušta vašem nizu bilo koje duljine. To je najčešće.
"Fiksna" varijabla niza definira veličinu niza. Fiksni niz može sadržavati do 65.400 znakova.
1 | Zatamnite strName kao niz *20 |
Kada definirate fiksnu varijablu, broj znakova u varijabli se zaključava, čak i ako koristite manje znakova.
Obratite pažnju na razmake na donjoj slici - varijabla ima mjesta za ostale znakove u nizu jer je 'Fred Smith' manje od 20 znakova.
Međutim, ako ste deklarirali niz bez navođenja duljine, tada će niz sadržavati samo onoliko znakova koliko mu je proslijeđeno.
Deklarirajte varijablu niza na modulu ili globalnoj razini
U prethodnom primjeru deklarirali ste varijablu String unutar procedure. Varijable deklarirane postupkom mogu se koristiti samo unutar tog postupka.
Umjesto toga, možete proglasiti String varijable na modulu ili globalnoj razini.
Razina modula
Razina modula varijable su deklarirane na vrhu kodnih modula sa Dim izjava.
Ove se varijable mogu koristiti sa bilo kojim postupkom u tom kodnom modulu.
Globalna razina
Globalna razina varijable su također deklarirane na vrhu modula koda. Međutim, umjesto korištenja Dim izjavu, koristite Javnost izraz koji označava da je varijabla niza dostupna za korištenje u cijelom vašem VBA projektu.
1 | Javni strName kao String |
Ako ste string varijablu proglasili na razini modula i koristili u drugom modulu, došlo bi do pogreške.
Međutim, ako koristite ključnu riječ Public za deklariranje varijable niza, pogreška se neće dogoditi i postupak će savršeno funkcionirati.
Pretvorite vrijednosti pohranjene kao niz
U nekim slučajevima možete imati vrijednosti u Excelu koje su pohranjene kao tekst - na primjer, možda ste uvezli CSV datoteku koja je možda unijela tekst umjesto brojeva.
Imajte na umu da je vrijednost u A1 poravnata ulijevo, što označava tekstualnu vrijednost.
Možete koristiti a VBA funkcija mogu se koristiti za pretvaranje ovih brojeva u tekst
12345678 | Sub ConvertValue ()'popunite nizstrQty = Raspon ("A1")'popunite dvostruko nizomdblQty = strQty'popunite raspon brojemRaspon ("A1") = dblQtyKraj podm |
Nakon što pokrenete kôd, broj će se pomaknuti udesno, što znači da je sada pohranjen kao broj.
To je osobito korisno kada se krećete kroz veliki raspon ćelija.
123456789101112131415 | Sub ConvertValue ()Dim strQty As String, dblQty As DoubleDim rw kao cijeli broj, i kao cijeli broj'broji retke za pretvorburw = Raspon ("A1", Raspon ("A1"). Kraj (xlDown)). Rows.Count'prođite kroz ćelije i svaku pretvorite u brojZa i = 0 Za rw - 1'popunite nizstrQty = Raspon ("A1"). Odmak (i, 0)'popunite dvostruko nizomdblQty = strQty'popunite raspon brojemRaspon ("A1"). Odmak (i, 0) = dblQtySljedeći iKraj podm |
Rezultat će biti da se sve ćelije zatim pretvaraju u brojeve
Umorni ste od traženja primjera VBA koda? Isprobajte AutoMacro!
Pretvori niz pohranjen kao vrijednosti
Slično, možda postoje vrijednosti koje trebate pretvoriti iz niza u vrijednost - na primjer, ako vam je potrebna početna nula na telefonskom broju.
123456789101112131415 | Sub ConvertString ()Dim strPhone As String, dblPhone As DoubleDim rw kao cijeli broj, i kao cijeli broj'broji retke za pretvorburw = Raspon ("A1", Raspon ("A1"). Kraj (xlDown)). Rows.Count'prođite kroz ćelije i svaku pretvorite u brojZa i = 0 Za rw - 1'popunite nizdblPhone = Raspon ("A1"). Odmak (i, 0)'popunite dvostruko nizomstrPhone = "'0" & dblPhone'popunite raspon brojemRaspon ("A1"). Odmak (i, 0) = strphoneSljedeći iKraj podm |
Imajte na umu da morate započeti tekstualni niz s apostrofom ('), prije nule kako biste Excelu rekli da unese vrijednost kao niz.