Vrsta podataka VBA nizova (varijabla zatamnjenja)

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.

wave wave wave wave wave