VBA ima številne nizne funkcije, ki vam omogočajo manipulacijo in delo z besedilom in nizi v kodi. V tej vadnici bomo obravnavali funkcije, ki vam bodo omogočile, da izvlečete podniz iz nizov, odstranite presledke iz nizov, pretvorite velikost besedila ali niza, primerjate nize in druge uporabne funkcije niza.
Izvlečenje podniz
Funkcija levega niza VBA
Leva funkcija VBA vam omogoča, da izvlečete podniz iz besedila ali niza, ki se začne z leve strani. Sintaksa funkcije levega niza VBA je:
Levo (niz, število_znakov), kjer:
- Niz - izvirno besedilo.
- Število_znakov - Celo število, ki podaja število znakov, ki jih je treba izvleči iz izvirnega besedila od začetka.
Naslednja koda prikazuje, kako s funkcijo levega niza izvlečete prve štiri znake danega niza:
1234567891011 | Sub UsingTheLeftStringFunction ()Zatemnjena vrednost Eno kot nizZatemnjena vrednost Dva kot nizvalueOne = "AutomateExcel"valueTwo = Levo (valueOne, 4)MsgBox valueTwoEnd Sub |
Rezultat je:
Leva funkcija je izvlekla prve štiri črke AutomateExcel, ki so Auto.
Funkcija desnega niza VBA
Desna funkcija VBA vam omogoča, da izvlečete podniz iz besedila ali niza, ki se začne na desni strani. Sintaksa funkcije desnega niza VBA je:
Desno (niz, število_znakov), kjer:
- Niz - izvirno besedilo.
- Število_znakov - Celo število, ki podaja število znakov, ki jih je treba izvleči iz izvirnega besedila, od konca.
Naslednja koda prikazuje, kako s funkcijo desnega niza izvlečete zadnje štiri znake niza:
1234567891011 | Pod uporaboTheRightStringFunction ()Zatemnjena vrednost Eno kot nizZatemnjena vrednost Dva As StringvalueOne = "AutomateExcel"valueTwo = Desno (valueOne, 4)MsgBox valueTwoEnd Sub |
Rezultat je:
Desna funkcija je izvlekla zadnje štiri črke AutomateExcel, ki so xcel.
Funkcija srednjega niza VBA
Funkcija VBA Mid vam omogoča, da izvlečete podniz iz besedila ali niza, začenši s katerega koli položaja v nizu, ki ga podate. Sintaksa funkcije VBA Mid String je:
Sredina (niz, začetna_postavitev, [število_znakov]), kjer:
- Niz - izvirno besedilo.
- Starting_position - Položaj v izvirnem besedilu, od koder se bo funkcija začela ekstrahirati.
- Število_znakov (Neobvezno) - Celo število, ki podaja število znakov, ki jih je treba izvleči iz izvirnega besedila, ki se začne od položaja Starting_position. Če je prazno, bo funkcija MID vrnila vse znake iz položaja Starting_position.
Naslednja koda vam prikazuje, kako s funkcijo vmesnega niza izvlečete štiri znake, začenši z drugega položaja ali znaka v nizu:
1234567891011 | Pod UporabaTheMidStringFunction ()Zatemnjena vrednost Eno kot nizZatemnjena vrednost Dva kot nizvalueOne = "AutomateExcel"valueTwo = Mid (valueOne, 2, 4)MsgBox valueTwoEnd Sub |
Rezultat se pošlje v sporočilo:
Funkcija Mid je izvlekla štiri črke AutomateExcel, ki se začnejo od drugega znaka/položaja/črke, ki so utom.
Iskanje položaja podniz
Funkcija nizov VBA Instr
Funkcija VBA Instr vrne začetni položaj podniz v drugem nizu. Ta funkcija razlikuje velike in male črke. Sintaksa funkcije nizov VBA Instr je:
Instr ([Start], String, Podniz, [Primerjaj]), kjer:
- Začni (Neobvezno) - Ta podaja začetni položaj za iskanje funkcije. Če je prazno, se uporabi privzeta vrednost 1.
- Niz - izvirno besedilo.
- Podniz- Podniz v izvirnem besedilu, za katerega želite najti položaj.
- Primerjaj (Neobvezno)- To določa vrsto primerjave. Če je prazno, se uporabi binarna primerjava.
-vbBinaryCompare - Binarna primerjava (velike in male črke se štejejo za različne)
-vbTextCompare - Primerjava besedila (velike in male črke veljajo za enake)
-vbDatabaseCompare - Primerjava zbirke podatkov (Ta možnost se uporablja samo v programu Microsoft Access in je primerjava, ki temelji na zbirki podatkov)
Naslednja koda prikazuje, kako s funkcijo nizov nizov določite prvi pojav podniz "Th" v glavnem nizu:
123456789101112 | Sub UsingTheInstrStringFunction ()Zatemnjena vrednost Eno kot nizZatemni položaj podnaloga kot celo številovalueOne = "To je besedilo"positionofSubstring = InStr (1, valueOne, "Th")Odpravljanje napak. Natisni položaj podvrsteEnd Sub |
Rezultat (izpisan v neposrednem oknu) je:
Funkcija Instr je vrnila položaj prvega pojavljanja podniz "Th", ki je 1. Upoštevajte, da ta funkcija vključuje presledke v štetju.
Nizka funkcija VBA InstrRev
Funkcija VBA InstrRev vrne začetni položaj podniz v drugem nizu, vendar začne šteti položaj, od konca niza. Ta funkcija razlikuje velike in male črke. Sintaksa nizovne funkcije VBA InstrRev je:
InstrRev (niz, podniz, [začetek], [primerjaj]), kjer:
- Niz - izvirno besedilo.
- Podniz- Podniz v izvirnem besedilu, za katerega želite najti položaj.
- Začni (Neobvezno) - To določa položaj, s katerega lahko začnete iskati. Če je polje prazno, začne funkcija iskati od zadnjega znaka.
- Primerjaj (Neobvezno)- To določa vrsto primerjave. Če je prazno, se uporabi binarna primerjava.
-vbBinaryCompare - Binarna primerjava (velike in male črke se štejejo za različne)
-vbTextCompare - Primerjava besedila (velike in male črke veljajo za enake)
-vbDatabaseCompare - Primerjava zbirke podatkov (Ta možnost se uporablja samo v programu Microsoft Access in je primerjava, ki temelji na zbirki podatkov)
Naslednja koda prikazuje, kako s funkcijo niza InstrRev določiti prvi pojav podniz "Th" v glavnem nizu, začenši od konca niza:
1234567891011 | Pod UporabaTheInstrRevStringFunction ()Zatemnjena vrednost Eno kot nizZatemni položaj podnaloga kot celo številovalueOne = "To je besedilo"positionofSubstring = InStrRev (valueOne, "Th")Odpravljanje napak. Natisni položaj podvrsteEnd Sub |
Rezultat se prikaže v neposrednem oknu:
Funkcija InstrRev je vrnila položaj prvega pojavljanja podniz "Th", vendar je začela štetje od konca, ki je 9. Upoštevajte, da ta funkcija vključuje presledke v štetju.
Odstranjevanje presledkov iz niza
Nizka funkcija VBA LTrim
Funkcija VBA LTrim odstrani vse začetne presledke iz besedila ali niza. Sintaksa nizovne funkcije VBA LTrim je:
LTrim (niz), kjer:
- Niz - izvirno besedilo.
Naslednja koda prikazuje, kako s funkcijo VBA LTrim odstraniti vodilne presledke v danem nizu:
123456789101112 | Pod uporaboTheLTrimStringFunction ()Zatemnjena vrednost Eno kot nizZatemnjena vrednost Dva kot nizvalueOne = "To je naslov spletnega mesta https://easyexcel.net/excel/"valueTwo = LTrim (valueOne)MsgBox valueOneMsgBox valueTwoEnd Sub |
Rezultati so naslednji:
Funkcija LTrim je za valuetwo odstranila vodilne prostore, ki so prikazani v drugem polju za sporočila.
Nizka funkcija VBA RTrim
Funkcija VBA RTrim odstrani vse presledke iz besedila ali niza. Sintaksa nizovne funkcije VBA RTrim je:
RTrim (niz), kjer:
- Niz - izvirno besedilo.
Naslednja koda prikazuje, kako s funkcijo VBA RTrim odstranite sledilne presledke v danem nizu:
123456789101112 | Pod UporabaTheRTrimStringFunction ()Zatemnjena vrednost Eno kot nizZatemnjena vrednost Dva As StringvalueOne = "To je naslov spletnega mesta https://easyexcel.net/excel/"valueTwo = RTrim (valueOne)MsgBox valueOneMsgBox valueTwoEnd Sub |
Dostavljeni rezultati so:
Funkcija RTrim je odstranila slednje presledke za valuetwo, ki so prikazani v drugem polju za sporočila.
Funkcija niza obrezovanja VBA
Funkcija obrezovanja VBA odstrani vse začetne in končne presledke iz besedila ali niza. Sintaksa funkcije VBA Trim String je:
Trim (niz), kjer:
- Niz - izvirno besedilo.
Naslednja koda prikazuje, kako s funkcijo obrezovanja VBA odstraniti začetni in zadnji razmik v danem nizu:
123456789101112 | Pod uporaboTheTrimStringFunction ()Zatemnjena vrednost Eno kot nizZatemnjena vrednost Dva kot nizvalueOne = "To je naslov spletnega mesta https://easyexcel.net/excel/"valueTwo = Trim (valueOne)MsgBox valueOneMsgBox valueTwoEnd Sub |
Rezultati so naslednji:
Funkcija obrezovanja je odstranila začetni in zadnji prostor za valuetwo, ki je prikazan v drugem polju za sporočila.
Funkcije primera VBA
Nizka funkcija VBA LCase
Funkcija VBA LCase pretvori črke v besedilu ali nizu v male črke. Sintaksa nizov funkcije VBA LCase je:
LCase (niz), kjer:
- Niz - izvirno besedilo.
Naslednja koda prikazuje, kako s funkcijo nizov LCase pretvorite vse črke v danem nizu v male črke:
1234567891011 | Pod uporaboTheLCaseStringFunction ()Zatemnjena vrednost Eno kot nizZatemnjena vrednost Dva As StringvalueOne = "TO JE IZDELEK"valueTwo = LCase (valueOne)MsgBox valueTwoEnd Sub |
Rezultat je:
Funkcija LCase je vse črke v nizu pretvorila v male črke.
Funkcija niza VBA UCase
Funkcija VBA UCase pretvori črke v besedilu ali nizu v velike črke. Sintaksa nizov funkcije VBA UCase je:
UCase (niz), kjer:
- Niz - izvirno besedilo.
Naslednja koda prikazuje, kako s funkcijo nizov UCase pretvorite vse črke v danem nizu v velike črke:
1234567891011 | Podpora TheUCaseStringFunction ()Zatemnjena vrednost Eno kot nizZatemnjena vrednost Dva As StringvalueOne = "to je izdelek"valueTwo = UCase (valueOne)MsgBox valueTwoEnd Sub |
Rezultat je:
Funkcija UCase je vse črke v nizu pretvorila v velike črke.
Funkcija VBA StrConv
Funkcija VBA StrConv lahko pretvori črke v besedilu ali nizu v velike črke, male črke, pravilne črke ali unicode, odvisno od vrste pretvorbe, ki jo podate. Sintaksa nizovne funkcije VBA StrConv je:
StrConv (niz, pretvorba, [LCID]), kjer:
- Niz - izvirno besedilo.
- Pretvorba - vrsta pretvorbe, ki jo želite.
- [LCID] (Neobvezno) -Izbirni parameter, ki podaja LocaleID. Če je prazno, se uporabi sistemski LocaleID.
Naslednja koda prikazuje, kako uporabite funkcijo niza StrConv za pretvorbo niza v pravilno črko:
1234567891011 | Sub UsingTheStrConvStringFunction ()Zatemnjena vrednost Eno kot nizZatemnjena vrednost Dva As StringvalueOne = "to je izdelek"valueTwo = StrConv (valueOne, vbProperCase)MsgBox valueTwoEnd Sub |
Rezultat je:
S pretvorbenim parametrom določite vrsto konverzije, ki jo želite izvesti:
- vbLowerCase pretvori vse črke v besedilu v male črke.
- vbUpperCase pretvori vse črke v besedilu v velike črke.
- vbProperCase pretvori prvo črko vsake besede v besedilu v velike črke, vse ostale črke pa se shranijo kot male.
- vbUnicode pretvori niz v unicode.
- vbFromUnicode pretvori niz iz unicode v privzeto kodno stran sistema.
Primerjava nizov
Funkcija VBA StrComp
Funkcija niza VBA StrComp omogoča primerjavo dveh nizov. Funkcija vrne:
- 0, če se dva niza ujemata
- -1, če je niz1 manjši od niza2
- 1, če je niz1 večji od niza2
- Ničelna vrednost, če je bil kateri od nizov Null
Naslednja koda prikazuje, kako uporabite funkcijo StrComp za primerjavo dveh nizov:
123456789101112 | Pod uporaboTheStrCompStringFunction ()Zatemnjena vrednost Eno kot nizZatemnjena vrednost Dva As StringZatemni rezultat primerjave kot celo številovalueOne = "AutomateExcel"valueTwo = "AutomateExcel"rezultatComparison = StrComp (valueOne, valueTwo)Odpravljanje napak. Natisni rezultat primerjaveEnd Sub |
Rezultat je:
Funkcija StrComp je našla natančno ujemanje med obema nizoma in vrnila 0.
Operater VBA Like
Operater VBA Like Operator vam omogoča primerjavo besedila ali niza z vzorcem in preverjanje, ali obstaja ujemanje. Običajno bi operater Like uporabljali skupaj z nadomestnimi znaki. Naslednja koda prikazuje, kako uporabljati operater Like Like:
123456789101112 | Sub UsingTheLikeOperatorInVBA ()Zatemnjena vrednost Eno kot nizvalueOne = "Oglejmo si izhod"Če valueOne Like "*view*" PotemMsgBox "Obstaja ujemanje, ta niz vsebuje besedo pogled"Sicer paMsgBox "Ujemanja ni bilo mogoče najti"Konec ČeEnd Sub |
Rezultat je:
Nadomestni znaki, ki jih lahko uporabite z operaterjem Like za iskanje ujemanja vzorcev, vključujejo:
- ? ki se ujema z enim samim znakom
- #, ki se ujema z enomestno številko
- * ki ustreza nič ali več znakov
Naslednja koda prikazuje, kako bi uporabljali operater Like in operater? nadomestni znak, ki ustreza vzorcu v vaši kodi:
123456789101112 | Sub UsingTheLikeOperatorWithAWildcardInVBA ()Zatemnjena vrednost Eno kot nizvalueOne = "The"Če valueOne Like "?? e" PotemMsgBox "Obstaja ujemanje, vzorec ujemanja je bil najden"Sicer paMsgBox "Ujemanja ni bilo mogoče najti"Konec ČeEnd Sub |
Dostavljeni rezultat je:
Druge uporabne nizovne funkcije VBA
Funkcija zamenjave niza VBA
Funkcija zamenjave VBA zamenja niz znakov v nizu z drugim nizom znakov. Sintaksa funkcije nizov VBA Replace je:
Zamenjaj (String, Find, Replace, [Start], [Count], [Primerjaj]), kjer:
- Niz - izvirno besedilo.
- Najdi - Podniz za iskanje v izvirnem besedilu.
- Zamenjaj - podniz, s katerim zamenjate podniz Find.
- Začni (Neobvezno)- Položaj za začetek iskanja v izvirnem besedilu. Če je prazno, se uporabi vrednost 1 in funkcija se začne na mestu prvega znaka.
- Štej (Neobvezno)- Število pojavitev podniz Find v izvirnem besedilu, ki ga je treba zamenjati. Če je prazno, se zamenjajo vsi dogodki podniza Najdi.
- Primerjaj (Neobvezno)- To določa vrsto primerjave. Če je prazno, se uporabi binarna primerjava.
-vbBinaryCompare - Binarna primerjava
-vbTextCompare - Primerjava besedila
-vbDatabaseCompare - Primerjava zbirke podatkov (Ta možnost se uporablja samo v programu Microsoft Access in je primerjava, ki temelji na bazi podatkov.)
Naslednja koda prikazuje, kako uporabljati funkcijo Zamenjaj niz:
1234567891011 | Pod UporabaTheReplaceStringFunction ()Zatemnjena vrednost Eno kot nizZatemnjena vrednost Dva kot nizvalueOne = "ProductABC"valueTwo = Zamenjaj (valueOne, "ABC", "XYZ")MsgBox valueTwoEnd Sub |
Rezultat je:
Funkcija Replace je našla podniz ABC v ProductABC in ga zamenjala s podniz XYZ.
Funkcija VBA StrReverse
Funkcija VBA StrReverse obrne znake v danem besedilu ali nizu. Sintaksa funkcije niza VBA StrReverse je:
StrReverse (niz), kjer:
- Niz - izvirno besedilo.
Naslednja koda prikazuje, kako s funkcijo VBA StrReverse obrniti znake v nizu Product:
1234567891011 | Pod UporabaTheStrReverseStringFunction ()Zatemnjena vrednost Eno kot nizZatemnjena vrednost Dva As StringvalueOne = "Izdelek"valueTwo = StrReverse (valueOne)MsgBox valueTwoEnd Sub |
Rezultat je:
Nizna funkcija VBA Len
Funkcija VBA Len vrne število znakov v besedilnem nizu. Sintaksa nizovne funkcije VBA Len je:
Len (niz), kjer:
- Niz - izvirno besedilo.
Naslednja koda prikazuje, kako s funkcijo Len String določite dolžino niza AutomateExcel:
1234567891011 | Pod uporaboTheLenFunction ()Zatemnjena vrednost Eno kot nizZatemni niz dolžine kot celo številovalueOne = "AutomateExcel"stringLength = Len (valueOne)Debug.Print stringLengthEnd Sub |
Rezultat je:
Funkcija Len je preštela vse znake v besedilu AutomateExcel, ki vsebuje 13 črk.