Funkcije nizov in podnizov VBA

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.

Vam bo pomagal razvoj spletnega mesta, ki si delijo stran s svojimi prijatelji

wave wave wave wave wave