VBA -strenger og substringsfunksjoner

VBA har mange strengfunksjoner som lar deg manipulere og arbeide med tekst og strenger i koden din. I denne opplæringen skal vi dekke funksjoner som lar deg trekke ut underlag fra strenger, fjerne mellomrom fra strenger, konvertere tilfelle av en tekst eller streng, sammenligne strenger og andre nyttige strengfunksjoner.

Trekker ut en understreng

VBA venstre strengfunksjon

Med VBA venstre funksjon kan du trekke ut en delstreng fra en tekst eller streng som starter fra venstre side. Syntaksen til VBA venstre strengfunksjon er:

Venstre (streng, antall_tegn) der:

  • String - Den originale teksten.
  • Antall tegn - Et heltall som angir antall tegn som skal trekkes ut fra originalteksten fra begynnelsen.

Følgende kode viser deg hvordan du bruker venstre strengfunksjon til å trekke ut de fire første tegnene i den gitte strengen:

1234567891011 Sub UsingTheLeftStringFunction ()Dim valueOne As StringDim verdiTo som strengvalueOne = "AutomateExcel"valueTwo = Venstre (valueOne, 4)MsgBox valueTwoSlutt Sub

Resultatet er:

Den venstre funksjonen har hentet ut de fire første bokstavene i AutomateExcel, som er Auto.

VBA høyre strengfunksjon

Med VBA høyre funksjon kan du trekke ut en delstreng fra en tekst eller streng som starter fra høyre side. Syntaksen til VBA Right String -funksjonen er:

Høyre (streng, antall_tegn) der:

  • String - Den originale teksten.
  • Antall tegn - Et heltall som angir antall tegn som skal trekkes ut fra originalteksten fra slutten.

Følgende kode viser deg hvordan du bruker funksjonen Høyre streng til å trekke ut de fire siste tegnene i strengen:

1234567891011 Sub UsingTheRightStringFunction ()Dim valueOne As StringDim verdiTo som strengvalueOne = "AutomateExcel"valueTwo = Høyre (valueOne, 4)MsgBox valueTwoSlutt Sub

Resultatet er:

Høyre funksjon har trukket ut de fire siste bokstavene i AutomateExcel, som er xcel.

VBA midtstrengfunksjon

Med VBA Mid -funksjonen kan du trekke ut en delstreng fra en tekst eller streng, fra en hvilken som helst posisjon i strengen du angir. Syntaksen til VBA Mid String -funksjonen er:

Midt (streng, startposisjon, [antall_tegn]) der:

  • String - Den originale teksten.
  • Startposisjon - Posisjonen i originalteksten, hvor funksjonen vil begynne å trekke ut fra.
  • Antall tegn (Valgfri) - Et heltall som angir antall tegn som skal trekkes ut fra originalteksten som begynner fra Startposisjonen. Hvis den er tom, vil MID -funksjonen returnere alle tegnene fra startposisjonen.

Følgende kode viser deg hvordan du bruker Mid String -funksjonen til å trekke ut fire tegn, fra den andre posisjonen eller tegnet i strengen:

1234567891011 Sub UsingTheMidStringFunction ()Dim valueOne As StringDim verdiTo som strengvalueOne = "AutomateExcel"valueTwo = Midt (verdiOne, 2, 4)MsgBox valueTwoSlutt Sub

Resultatet sendes ut til en meldingsboks:

Midtfunksjonen har hentet ut de fire bokstavene i AutomateExcel fra det andre tegnet/posisjonen/bokstaven som er utom.

Finne posisjonen til en understring

VBA Instr strengfunksjon

VBA Instr -funksjonen returnerer startposisjonen til en delstreng i en annen streng. Denne funksjonen er store og små bokstaver. Syntaksen til VBA Instr String -funksjonen er:

Instr ([Start], String, Substring, [Compare]) hvor:

  • Start (Valgfri) - Dette angir startposisjonen for funksjonen å søke fra. Hvis den er blank, brukes standardverdien 1.
  • String - Den originale teksten.
  • Substring- Delstrengen i originalteksten du vil finne posisjonen til.
  • Sammenlign (Valgfri)- Dette spesifiserer typen sammenligning som skal gjøres. Hvis det er tomt, brukes binær sammenligning.

-vbBinaryCompare - Binær sammenligning (store og små bokstaver regnes som forskjellige)
-vbTextCompare - Tekstsammenligning (store og små bokstaver regnes som det samme)
-vbDatabaseCompare - Databasesammenligning (Dette alternativet brukes bare i Microsoft Access, og er en sammenligning basert på databasen)

Følgende kode viser deg hvordan du bruker Instr String -funksjonen til å bestemme den første forekomsten av delstrengen "Th" i hovedstrengen:

123456789101112 Sub UsingTheInstrStringFunction ()Dim valueOne As StringDim positionofSubstring As IntegervalueOne = "Dette er teksten"positionofSubstring = InStr (1, valueOne, "Th")Debug.Print positionofSubstringSlutt Sub

Resultatet (sendt til det umiddelbare vinduet) er:

Instr -funksjonen har returnert posisjonen til den første forekomsten av delstrengen “Th” som er 1. Merk at denne funksjonen inkluderer mellomrom i tellingen.

VBA InstrRev strengfunksjon

VBA InstrRev -funksjonen returnerer startposisjonen til en delstreng i en annen streng, men den begynner å telle posisjonen fra slutten av strengen. Denne funksjonen er store og små bokstaver. Syntaksen til VBA InstrRev String -funksjonen er:

InstrRev (String, Substring, [Start], [Compare]) hvor:

  • String - Den originale teksten.
  • Substring- Delstrengen i originalteksten du vil finne posisjonen til.
  • Start (Valgfri) - Dette angir posisjonen du skal begynne å søke fra. Hvis den er tom, begynner funksjonen å søke fra det siste tegnet.
  • Sammenlign (Valgfri)- Dette spesifiserer typen sammenligning som skal gjøres. Hvis det er tomt, brukes binær sammenligning.

-vbBinaryCompare - Binær sammenligning (store og små bokstaver regnes som forskjellige)
-vbTextCompare - Tekstsammenligning (store og små bokstaver regnes som det samme)
-vbDatabaseCompare - Databasesammenligning (Dette alternativet brukes bare i Microsoft Access, og er en sammenligning basert på databasen)

Følgende kode viser deg hvordan du bruker InstrRev -strengfunksjonen til å bestemme den første forekomsten av delstrengen “Th” i hovedstrengen, fra slutten av strengen:

1234567891011 Sub UsingTheInstrRevStringFunction ()Dim valueOne As StringDim positionofSubstring As IntegervalueOne = "Dette er teksten"positionofSubstring = InStrRev (valueOne, "Th")Debug.Print position ofSubstringSlutt Sub

Resultatet sendes til vinduet Umiddelbart:

InstrRev -funksjonen har returnert posisjonen til den første forekomsten av delstrengen “Th”, men starter tellingen fra slutten som er 9. Merk at denne funksjonen inkluderer mellomrom i tellingen.

Fjerne mellomrom fra en streng

VBA LTrim -strengfunksjonen

VBA LTrim -funksjonen fjerner alle ledende mellomrom fra en tekst eller streng. Syntaksen til VBA LTrim String -funksjonen er:

LTrim (streng) hvor:

  • String - Den originale teksten.

Følgende kode viser deg hvordan du bruker VBA LTrim -funksjonen til å fjerne ledende mellomrom i den gitte strengen:

123456789101112 Sub UsingTheLTrimStringFunction ()Dim valueOne As StringDim verdiTo som strengvalueOne = "Dette er nettstedet adddress https://easyexcel.net/excel/"valueTwo = LTrim (valueOne)MsgBox valueOneMsgBox valueTwoSlutt Sub

Resultatene er:

LTrim -funksjonen har fjernet de ledende mellomromene for valuetwo, som vises i den andre meldingsboksen.

VBA RTrim -strengfunksjonen

VBA RTrim -funksjonen fjerner alle etterfølgende mellomrom fra en tekst eller streng. Syntaksen til VBA RTrim String -funksjonen er:

RTrim (streng) der:

  • String - Den originale teksten.

Følgende kode viser deg hvordan du bruker VBA RTrim -funksjonen til å fjerne bakre mellomrom i den gitte strengen:

123456789101112 Sub UsingTheRTrimStringFunction ()Dim valueOne As StringDim verdiTo som strengvalueOne = "Dette er nettstedet adddress https://easyexcel.net/excel/"valueTwo = RTrim (valueOne)MsgBox valueOneMsgBox valueTwoSlutt Sub

Resultatene som er levert er:

RTrim -funksjonen har fjernet de etterfølgende mellomrommene for verdi to, som er vist i den andre meldingsboksen.

VBA Trim String -funksjon

VBA Trim -funksjonen fjerner alle ledende og etterfølgende mellomrom fra en tekst eller streng. Syntaksen til VBA Trim String -funksjonen er:

Trim (streng) der:

  • String - Den originale teksten.

Følgende kode viser deg hvordan du bruker VBA Trim -funksjonen til å fjerne de ledende og etterfølgende mellomrommene i den gitte strengen:

123456789101112 Sub UsingTheTrimStringFunction ()Dim valueOne As StringDim verdiTo som strengvalueOne = "Dette er nettstedet adddress https://easyexcel.net/excel/"valueTwo = Trim (valueOne)MsgBox valueOneMsgBox valueTwoSlutt Sub

Resultatene er:

Trimfunksjonen har fjernet de ledende og etterfølgende mellomrommene for valuetwo, som er vist i den andre meldingsboksen.

VBA -saksfunksjoner

VBA LCase -strengfunksjonen

VBA LCase -funksjonen konverterer bokstaver i en tekst eller streng til små bokstaver. Syntaksen til VBA LCase String -funksjonen er:

LCase (streng) der:

  • String - Den originale teksten.

Følgende kode viser deg hvordan du bruker LCase String -funksjonen til å konvertere alle bokstavene i den gitte strengen til små bokstaver:

1234567891011 Sub UsingTheLCaseStringFunction ()Dim valueOne As StringDim verdiTo som strengvalueOne = "DETTE ER PRODUKTET"valueTwo = LCase (valueOne)MsgBox valueTwoSlutt Sub

Resultatet er:

LCase -funksjonen har konvertert alle bokstavene i strengen til små bokstaver.

VBA UCase strengfunksjon

VBA UCase -funksjonen konverterer bokstaver i en tekst eller streng til store bokstaver. Syntaksen til VBA UCase String -funksjonen er:

UCase (streng) der:

  • String - Den originale teksten.

Følgende kode viser deg hvordan du bruker UCase String -funksjonen til å konvertere alle bokstavene i den gitte strengen til store bokstaver:

1234567891011 Sub UsingTheUCaseStringFunction ()Dim valueOne As StringDim verdiTo som strengvalueOne = "dette er produktet"valueTwo = UCase (valueOne)MsgBox valueTwoSlutt Sub

Resultatet er:

UCase -funksjonen har konvertert alle bokstavene i strengen til store bokstaver.

VBA StrConv -funksjonen

VBA StrConv -funksjonen kan konvertere bokstaver i en tekst eller streng til store, små, riktige bokstaver eller unicode avhengig av konverteringstypen du angir. Syntaksen til VBA StrConv -strengfunksjonen er:

StrConv (streng, konvertering, [LCID]) der:

  • String - Den originale teksten.
  • Konvertering - typen konvertering du vil ha.
  • [LCID] (Valgfritt) -En valgfri parameter som angir LocaleID. Hvis det er tomt, brukes systemets lokal -ID.

Følgende kode viser deg hvordan du bruker StrConv -strengfunksjonen til å konvertere strengen til riktig bokstav:

1234567891011 Sub UsingTheStrConvStringFunction ()Dim valueOne As StringDim verdiTo som strengvalueOne = "dette er produktet"valueTwo = StrConv (valueOne, vbProperCase)MsgBox valueTwoSlutt Sub

Resultatet er:

Du angir konverteringstypen du vil utføre ved hjelp av konverteringsparameteren:

  • vbLowerCase konverterer alle bokstavene i teksten til små bokstaver.
  • vbUpperCase konverterer alle bokstavene i teksten til store bokstaver.
  • vbProperCase konverterer den første bokstaven i hvert ord i teksten til store bokstaver, mens alle de andre bokstavene beholdes som små bokstaver.
  • vbUnicode konverterer en streng til unicode.
  • vbFromUnicode konverterer en streng fra unicode til systemets standard kodeside.

Sammenligning av strenger

VBA StrComp -funksjonen

VBA StrComp String -funksjonen lar deg sammenligne to strenger. Funksjonen returnerer:

  • 0 hvis de to strengene stemmer overens
  • -1 hvis streng1 er mindre enn streng2
  • 1 hvis streng1 er større enn streng2
  • En nullverdi hvis en av strengene var Null

Følgende kode viser deg hvordan du bruker StrComp -funksjonen til å sammenligne to strenger:

123456789101112 Sub UsingTheStrCompStringFunction ()Dim valueOne As StringDim verdiTo som strengDim resultofComparison As IntegervalueOne = "AutomateExcel"valueTwo = "AutomateExcel"resultofComparison = StrComp (valueOne, valueTwo)Debug.Utskriftsresultat av sammenligningSlutt Sub

Resultatet er:

StrComp -funksjonen har funnet en eksakt samsvar mellom de to strengene og returnert 0.

VBA -lignende operatør

Med VBA Like Operator kan du sammenligne en tekst eller streng med et mønster og se om det er et treff. Du vil vanligvis bruke Like -operatøren sammen med jokertegn. Følgende kode viser deg hvordan du bruker Like Operator:

123456789101112 Sub UsingTheLikeOperatorInVBA ()Dim valueOne As StringvalueOne = "La oss se utgangen"Hvis valueOne liker "*view*" DaMsgBox "Det er et treff, denne strengen inneholder ordet view"EllersMsgBox "Ingen treff ble funnet"Slutt omSlutt Sub

Resultatet er:

Jokertegnene du kan bruke med Like Operator for å finne mønstermatcher inkluderer:

  • ? som matcher en enkelt karakter
  • # som matcher et enkelt siffer
  • * som matcher null eller flere tegn

Følgende kode viser deg hvordan du vil bruke Like Operator og? jokertegn for å matche et mønster i koden din:

123456789101112 Sub UsingTheLikeOperatorWithAWildcardInVBA ()Dim valueOne As StringvalueOne = "The"Hvis valueOne Like "?? e" DaMsgBox "Det er en treff, et matchende mønster ble funnet"EllersMsgBox "Ingen treff ble funnet"Slutt omSlutt Sub

Resultatet som er levert er:

Andre nyttige VBA -strengfunksjoner

VBA Replace String -funksjonen

VBA Replace -funksjonen erstatter et sett med tegn i en streng med et annet sett med tegn. Syntaksen til VBA Replace String -funksjonen er:

Erstatt (String, Find, Replace, [Start], [Count], [Compare]) der:

  • String - Den originale teksten.
  • Finn - Delstrengen du vil søke etter i originalteksten.
  • Erstatt - Delstrengen du vil erstatte Finn -delstrengen med.
  • Start (Valgfri)- Posisjonen for å begynne å søke innen originalteksten. Hvis den er blank, brukes verdien av 1 og funksjonen starter ved den første tegnposisjonen.
  • Telle (Valgfri)- Antall forekomster av Finn -delstrengen i originalteksten som skal erstattes. Hvis det er tomt, blir alle forekomster av Finn -delstrengen erstattet.
  • Sammenlign (Valgfri)- Dette spesifiserer typen sammenligning som skal gjøres. Hvis det er tomt, brukes binær sammenligning.

    -vbBinaryCompare - Binær sammenligning
    -vbTextCompare - Sammenligning av tekst
    -vbDatabaseCompare - Databasesammenligning (Dette alternativet brukes bare i Microsoft Access, og er en sammenligning basert på databasen.)

Følgende kode viser deg hvordan du bruker funksjonen Erstatt streng:

1234567891011 Sub UsingTheReplaceStringFunction ()Dim valueOne As StringDim verdiTo som strengvalueOne = "ProductABC"valueTwo = Erstatt (valueOne, "ABC", "XYZ")MsgBox valueTwoSlutt Sub

Resultatet er:

Replace -funksjonen fant delstrengen ABC i ProductABC og erstattet den med delstrengen XYZ.

VBA StrReverse -funksjonen

VBA StrReverse -funksjonen reverserer tegnene i en gitt tekst eller streng. Syntaksen til VBA StrReverse String -funksjonen er:

StrReverse (streng) hvor:

  • String - Den originale teksten.

Følgende kode viser deg hvordan du bruker VBA StrReverse -funksjonen til å reversere tegnene i strengen Produkt:

1234567891011 Sub UsingTheStrReverseStringFunction ()Dim valueOne As StringDim verdiTo som strengvalueOne = "Produkt"valueTwo = StrReverse (valueOne)MsgBox valueTwoSlutt Sub

Resultatet er:

VBA Len -strengfunksjonen

VBA Len -funksjonen returnerer antall tegn i en tekststreng. Syntaksen til VBA Len String -funksjonen er:

Len (streng) der:

  • String - Den originale teksten.

Følgende kode viser deg hvordan du bruker Len String -funksjonen til å bestemme lengden på strengen AutomateExcel:

1234567891011 Sub UsingTheLenFunction ()Dim valueOne As StringDim stringLength As IntegervalueOne = "AutomateExcel"stringLength = Len (valueOne)Debug.Print stringLengthSlutt Sub

Resultatet er:

Len -funksjonen har talt alle tegnene i teksten AutomateExcel, som er 13 bokstaver.

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave