Vrsta spremenljive vrste
Podatkovni niz String je eden najpogostejših podatkovnih tipov v VBA. Shranjuje "nize" besedila.
Če želite razglasiti spremenljivko String spremenljivko, uporabite stavek Dim (okrajšava za Dimension):
1 | Zatemni strName kot niz |
Če želite spremenljivki dodeliti vrednost, uporabite znak enako:
1 | strName = "Fred Smith" |
Dajanje tega v postopek izgleda tako:
12345678 | Sub strExample ()'razglasi nizZatemni strName kot niz'zapolni nizstrName = "Fred Smith"'pokaži polje s sporočilomIme sporočila MsgBoxEnd Sub |
Če zaženete zgornjo kodo, se prikaže naslednje polje s sporočilom.
Fiksna spremenljivka niza
Pravzaprav obstajata dve vrsti niznih spremenljivk - fiksna in spremenljiva.
Spremenljivka niza »spremenljiva« (prikazana v prejšnjem primeru) omogoča, da je vaš niz poljubne dolžine. To je najpogostejše.
"Fiksna" spremenljivka niza določa velikost niza. Fiksni niz lahko vsebuje do 65.400 znakov.
1 | Zatemni strName kot niz *20 |
Ko določite fiksno spremenljivko, se število znakov v spremenljivki zaklene, tudi če uporabljate manj znakov.
Upoštevajte presledke na spodnji sliki - spremenljivka ima oznake za ostale znake v nizu, saj je 'Fred Smith' manj kot 20 znakov.
Če pa ste deklarirali niz, ne da bi določili dolžino, bo niz vseboval le toliko znakov, kolikor mu je bilo posredovanih.
Razglasite spremenljivko niza na ravni modula ali na globalni ravni
V prejšnjem primeru ste spremenljivko String razglasili v postopku. Spremenljivke, deklarirane s postopkom, se lahko uporabljajo samo v tem postopku.
Namesto tega lahko spremenljivke String deklarirate na modularni ali globalni ravni.
Raven modula
Raven modula spremenljivke so na vrhu kodnih modulov označene z Dim izjavo.
Te spremenljivke je mogoče uporabiti s katerim koli postopkom v tem kodnem modulu.
Globalna raven
Globalna raven spremenljivke so deklarirane tudi na vrhu kodnih modulov. Namesto da uporabite Dim izjavo, uporabljate Javno stavek, ki označuje, da je spremenljivka niza na voljo za uporabo v celotnem projektu VBA.
1 | Javno strName kot String |
Če spremenljivko niza deklarirate na ravni modula in uporabite v drugem modulu, bi prišlo do napake.
Če pa za razglasitev spremenljivke niza uporabite ključno besedo Public, se napaka ne bo pojavila in postopek bo deloval brezhibno.
Pretvorite vrednosti, shranjene kot niz
Včasih lahko imate vrednosti v Excelu, ki so shranjene kot besedilo - na primer, morda ste uvozili datoteko CSV, ki je morda namesto številk prinesla besedilo.
Upoštevajte, da je vrednost v A1 poravnana v levo, kar označuje besedilno vrednost.
Uporabite lahko a Funkcija VBA lahko uporabite za pretvorbo teh številk v besedilo
12345678 | Sub ConvertValue ()'zapolni nizstrQty = Obseg ("A1")'vnesite dvojček z nizomdblQty = strQty'vnesite obseg s številkoObseg ("A1") = dblQtyEnd Sub |
Ko zaženete kodo, se bo številka premaknila v desno, kar pomeni, da je zdaj shranjena kot številka.
To je še posebej uporabno, če prečkate veliko celic.
123456789101112131415 | Sub ConvertValue ()Zatemni strQty kot niz, dblQty kot dvojnoZatemni rw kot celo število, i kot celo število'štejte vrstice za pretvorborw = Razpon ("A1", Razpon ("A1"). Konec (xlDown)). Vrstice. Število'prebrskajte celice in vsako pretvorite v številkoZa i = 0 Za rw - 1'zapolni nizstrQty = Obseg ("A1"). Odmik (i, 0)'vnesite dvojček z nizomdblQty = strQty'vnesite obseg s številkoRazpon ("A1"). Odmik (i, 0) = dblQtyNaprej iEnd Sub |
Rezultat je, da se vse celice nato pretvorijo v številke
Utrujen od iskanja primerov kode VBA? Preizkusite AutoMacro!
Pretvori niz, shranjen kot vrednosti
Podobno lahko obstajajo vrednosti, ki jih morate pretvoriti iz niza v vrednost - na primer, če na telefonski številki potrebujete začetno ničlo.
123456789101112131415 | Sub ConvertString ()Dim strPhone As String, dblPhone As DoubleZatemni rw kot celo število, i kot celo število'štejte vrstice za pretvorborw = Razpon ("A1", Razpon ("A1"). Konec (xlDown)). Vrstice. Število'prebrskajte celice in vsako pretvorite v številkoZa i = 0 Za rw - 1'zapolni nizdblPhone = Domet ("A1"). Odmik (i, 0)'vnesite dvojček z nizomstrPhone = "'0" & dblPhone'vnesite obseg s številkoRazpon ("A1"). Odmik (i, 0) = strphoneNaprej iEnd Sub |
Upoštevajte, da morate besedilni niz začeti z apostrofom (') pred ničlo, da lahko Excelu poveste, naj vnese vrednost kot niz.