VBA-tekenreeksen en subtekenreeksen Functies

VBA heeft veel tekenreeksfuncties waarmee u tekst en tekenreeksen in uw code kunt manipuleren en ermee kunt werken. In deze tutorial gaan we functies behandelen waarmee je substrings uit strings kunt extraheren, spaties uit strings kunt verwijderen, het geval van een tekst of string kunt converteren, strings en andere handige stringfuncties kunt vergelijken.

Een subtekenreeks extraheren

De VBA Left String-functie

Met de VBA-linksfunctie kunt u een subtekenreeks extraheren uit een tekst of tekenreeks vanaf de linkerkant. De syntaxis van de VBA Left String-functie is:

Links (tekenreeks, aantal_tekens) waarbij:

  • String - De originele tekst.
  • Aantal_tekens - Een geheel getal dat het aantal tekens aangeeft dat vanaf het begin uit de originele tekst moet worden geëxtraheerd.

De volgende code laat zien hoe je de Left String Function gebruikt om de eerste vier karakters van de gegeven string te extraheren:

1234567891011 Sub met behulp vanTheLeftStringFunction()Dim waardeOne As StringDim waardeTwee als stringvalueOne = "Excel automatiseren"waardeTwee = Links(waardeEen, 4)MsgBox-waardeTweeEinde sub

Het resultaat is:

De linkerfunctie heeft de eerste vier letters van AutomateExcel geëxtraheerd, die Auto zijn.

De VBA Right String-functie

Met de VBA Right-functie kunt u een subtekenreeks extraheren uit een tekst of tekenreeks vanaf de rechterkant. De syntaxis van de VBA Right String-functie is:

Rechts (tekenreeks, aantal_tekens) waarbij:

  • String - De originele tekst.
  • Aantal_tekens - Een geheel getal dat het aantal tekens aangeeft dat vanaf het einde uit de originele tekst moet worden geëxtraheerd.

De volgende code laat zien hoe u de Right String Function gebruikt om de laatste vier tekens van de string te extraheren:

1234567891011 Sub met behulp vanTheRightStringFunction()Dim waardeOne As StringDim waardeTwee als stringvalueOne = "Excel automatiseren"waardeTwee = Rechts(waardeEen, 4)MsgBox-waardeTweeEinde sub

Het resultaat is:

De juiste functie heeft de laatste vier letters van AutomateExcel geëxtraheerd, die xcel zijn.

De VBA Mid String-functie

Met de VBA Mid-functie kunt u een subtekenreeks extraheren uit een tekst of tekenreeks, beginnend vanaf elke positie binnen de tekenreeks die u opgeeft. De syntaxis van de VBA Mid String-functie is:

Mid(String, Startpositie, [Aantal_tekens]) waarbij:

  • String - De originele tekst.
  • Startpositie - De positie in de originele tekst, waar de functie uit begint te extraheren.
  • Aantal_tekens (Optioneel) - Een geheel getal dat het aantal tekens aangeeft dat uit de originele tekst moet worden geëxtraheerd, te beginnen vanaf de beginpositie. Indien leeg, retourneert de MID-functie alle tekens van de startpositie.

De volgende code laat zien hoe u de Mid String-functie gebruikt om vier tekens te extraheren, beginnend vanaf de tweede positie of het tweede teken in de tekenreeks:

1234567891011 Sub met behulp vanTheMidStringFunction()Dim waardeOne As StringDim waardeTwee als stringvalueOne = "Excel automatiseren"waardeTwee = Midden(waardeEen, 2, 4)MsgBox-waardeTweeEinde sub

Het resultaat wordt uitgevoerd naar een msgbox:

De Mid-functie heeft de vier letters van AutomateExcel geëxtraheerd vanaf het tweede teken/positie/letter die utom zijn.

De positie van een subtekenreeks vinden

De VBA Instr String-functie

De VBA Instr-functie retourneert de startpositie van een subtekenreeks binnen een andere tekenreeks. Deze functie is hoofdlettergevoelig. De syntaxis van de VBA Instr String-functie is:

Instr([Start], String, Substring, [Vergelijk]) waarbij:

  • Begin (Optioneel) - Dit specificeert de startpositie voor de functie om vanaf te zoeken. Indien leeg, wordt de standaardwaarde 1 gebruikt.
  • String - De originele tekst.
  • Subtekenreeks- De subtekenreeks binnen de originele tekst waarvan u de positie wilt vinden.
  • Vergelijken (Optioneel)- Dit specificeert het type vergelijking dat gemaakt moet worden. Indien leeg, wordt binaire vergelijking gebruikt.

-vbBinaryCompare - Binaire vergelijking (Hoofdletters en kleine letters worden als verschillend beschouwd)
-vbTextCompare - Tekstvergelijking (Hoofdletters en kleine letters worden als hetzelfde beschouwd)
-vbDatabaseCompare - Databasevergelijking (deze optie wordt alleen gebruikt in Microsoft Access en is een vergelijking op basis van de database)

De volgende code laat zien hoe u de Instr String-functie gebruikt om het eerste voorkomen van de substring "Th" in de hoofdstring te bepalen:

123456789101112 Sub met behulp vanTheInstrStringFunction()Dim waardeOne As StringDim positionofSubstring As IntegervalueOne = "Dit is de tekst"positionofSubstring = InStr(1, valueOne, "Th")Foutopsporing. Positie van subtekenreeks afdrukkenEinde sub

Het resultaat (uitgevoerd naar het onmiddellijke venster) is:

De Instr-functie heeft de positie van de eerste keer dat de subtekenreeks "Th" voorkomt, teruggegeven, namelijk 1. Merk op dat deze functie de spaties in de telling omvat.

De VBA InstrRev String-functie

De VBA InstrRev-functie retourneert de startpositie van een subtekenreeks binnen een andere tekenreeks, maar begint de positie te tellen vanaf het einde van de tekenreeks. Deze functie is hoofdlettergevoelig. De syntaxis van de VBA InstrRev String-functie is:

InstrRev(String, Substring, [Start], [Vergelijk]) waarbij:

  • String - De originele tekst.
  • Subtekenreeks- De subtekenreeks binnen de originele tekst waarvan u de positie wilt vinden.
  • Begin (Optioneel) - Dit specificeert de positie om te beginnen met zoeken. Indien leeg, begint de functie te zoeken vanaf het laatste teken.
  • Vergelijken (Optioneel)- Dit specificeert het type vergelijking dat gemaakt moet worden. Indien leeg, wordt binaire vergelijking gebruikt.

-vbBinaryCompare - Binaire vergelijking (Hoofdletters en kleine letters worden als verschillend beschouwd)
-vbTextCompare - Tekstvergelijking (Hoofdletters en kleine letters worden als hetzelfde beschouwd)
-vbDatabaseCompare - Databasevergelijking (deze optie wordt alleen gebruikt in Microsoft Access en is een vergelijking op basis van de database)

De volgende code laat zien hoe u de InstrRev-tekenreeksfunctie gebruikt om de eerste instantie van de subtekenreeks "Th" in de hoofdtekenreeks te bepalen, beginnend vanaf het einde van de tekenreeks:

1234567891011 Sub met behulp vanTheInstrRevStringFunction()Dim waardeOne As StringDim positionofSubstring As IntegervalueOne = "Dit is de tekst"positionofSubstring = InStrRev(valueOne, "Th")Foutopsporing. Positie van subtekenreeks afdrukkenEinde sub

Het resultaat wordt uitgevoerd naar het onmiddellijke venster:

De InstrRev-functie heeft de positie van het eerste voorkomen van de substring "Th" geretourneerd, maar het tellen vanaf het einde, dat is 9. Merk op dat deze functie de spaties in de telling omvat.

Spaties uit een string verwijderen

De VBA LTrim String-functie

De VBA LTrim-functie verwijdert alle voorloopspaties uit een tekst of tekenreeks. De syntaxis van de VBA LTrim String-functie is:

LTrim(String) waarbij:

  • String - De originele tekst.

De volgende code laat zien hoe u de VBA LTrim-functie gebruikt om de voorloopspaties in de gegeven string te verwijderen:

123456789101112 Sub met behulp vanTheLTrimStringFunction()Dim waardeOne As StringDim waardeTwee als stringvalueOne = " Dit is het adres van de website https://easyexcel.net/excel/"waardeTwee = LTrim(waardeEen)MsgBox-waardeEenMsgBox-waardeTweeEinde sub

De resultaten zijn:

De LTrim-functie heeft de voorloopspaties verwijderd voor waarde twee, die wordt weergegeven in het tweede berichtenvenster.

De VBA RTrim String-functie

De VBA RTrim-functie verwijdert alle volgspaties uit een tekst of tekenreeks. De syntaxis van de VBA RTrim String-functie is:

RTrim(String) waar:

  • String - De originele tekst.

De volgende code laat zien hoe u de VBA RTrim-functie gebruikt om de volgspaties in de gegeven string te verwijderen:

123456789101112 Sub met behulp vanTheRTrimStringFunction()Dim waardeOne As StringDim waardeTwee als stringvalueOne = "Dit is het adres van de website https://easyexcel.net/excel/ "waardeTwee = RTrim(waardeEen)MsgBox-waardeEenMsgBox-waardeTweeEinde sub

De opgeleverde resultaten zijn:

De RTrim-functie heeft de volgspaties voor waarde twee verwijderd, die wordt weergegeven in het tweede berichtenvenster.

De VBA Trim String-functie

De VBA Trim-functie verwijdert alle voorloop- en volgspaties uit een tekst of tekenreeks. De syntaxis van de VBA Trim String-functie is:

Trim(String) waar:

  • String - De originele tekst.

De volgende code laat zien hoe u de VBA Trim-functie gebruikt om de voorloop- en volgspaties in de gegeven string te verwijderen:

123456789101112 Sub met behulp vanTheTrimStringFunction()Dim waardeOne As StringDim waardeTwee als stringvalueOne = " Dit is het adres van de website https://easyexcel.net/excel/ "waardeTwee = Trim(waardeEen)MsgBox-waardeEenMsgBox-waardeTweeEinde sub

De resultaten zijn:

De Trim-functie heeft de voorloop- en volgspaties verwijderd voor waarde twee, die wordt weergegeven in het tweede berichtenvenster.

VBA Case-functies

De VBA LCase String-functie

De VBA LCase-functie converteert letters in een tekst of tekenreeks naar kleine letters. De syntaxis van de VBA LCase String-functie is:

LCase(String) waarbij:

  • String - De originele tekst.

De volgende code laat zien hoe u de LCase String Function gebruikt om alle letters in de gegeven string naar kleine letters te converteren:

1234567891011 Sub met behulp vanTheLCaseStringFunction()Dim waardeOne As StringDim waardeTwee als stringvalueOne = "DIT IS HET PRODUCT"waardeTwee = LCase(waardeEen)MsgBox-waardeTweeEinde sub

Het resultaat is:

De LCase-functie heeft alle letters in de tekenreeks omgezet in kleine letters.

De VBA UCase String-functie

De VBA UCase-functie converteert letters in een tekst of tekenreeks naar hoofdletters. De syntaxis van de VBA UCase String-functie is:

UCase(String) waar:

  • String - De originele tekst.

De volgende code laat zien hoe u de UCase String Function gebruikt om alle letters in de gegeven string naar hoofdletters te converteren:

1234567891011 Sub met behulp vanTheUCaseStringFunction()Dim waardeOne As StringDim waardeTwee als stringvalueOne = "dit is het product"waardeTwee = UCase(waardeEen)MsgBox-waardeTweeEinde sub

Het resultaat is:

De UCase-functie heeft alle letters in de tekenreeks omgezet in hoofdletters.

De VBA StrConv-functie

De VBA StrConv-functie kan letters in een tekst of tekenreeks converteren naar hoofdletters, kleine letters, hoofdletters of unicode, afhankelijk van het type conversie dat u opgeeft. De syntaxis van de VBA StrConv String-functie is:

StrConv(String, Conversie, [LCID]) waarbij:

  • String - De originele tekst.
  • Conversie - Het type conversie dat u wilt.
  • [LCID] (Optioneel) -Een optionele parameter die de LocaleID specificeert. Indien leeg, wordt het systeem LocaleID gebruikt.

De volgende code laat zien hoe u de StrConv String Function gebruikt om de string naar de juiste hoofdletters te converteren:

1234567891011 Sub met behulp vanTheStrConvStringFunction()Dim waardeOne As StringDim waardeTwee als stringvalueOne = "dit is HET product"waardeTwee = StrConv(waardeEen, vbProperCase)MsgBox-waardeTweeEinde sub

Het resultaat is:

U geeft het type conversie op dat u wilt uitvoeren met behulp van de conversieparameter:

  • vbLowerCase converteert alle letters in de tekst naar kleine letters.
  • vbUpperCase converteert alle letters in de tekst naar hoofdletters.
  • vbProperCase converteert de eerste letter van elk woord in de tekst naar hoofdletters, terwijl alle andere letters als kleine letters worden behouden.
  • vbUnicode converteert een string naar unicode.
  • vbFromUnicode converteert een tekenreeks van unicode naar de standaardcodepagina van het systeem.

Snaren vergelijken

De VBA StrComp-functie

Met de VBA StrComp String-functie kunt u twee strings vergelijken. De functie retourneert:

  • 0 als de twee strings overeenkomen
  • -1 als string1 kleiner is dan string2
  • 1 als string1 groter is dan string2
  • Een null-waarde als een van de tekenreeksen Null was

De volgende code laat zien hoe u de StrComp-functie gebruikt om twee tekenreeksen te vergelijken:

123456789101112 Sub met behulp vanTheStrCompStringFunction()Dim waardeOne As StringDim waardeTwee als stringDim resultaat van vergelijking als geheel getalvalueOne = "Excel automatiseren"valueTwo = "Excel automatiseren"resultofComparison = StrComp(valueOne, valueTwo)Debug.Resultaat van vergelijking afdrukkenEinde sub

Het resultaat is:

De StrComp-functie heeft een exacte overeenkomst gevonden tussen de twee tekenreeksen en heeft 0 geretourneerd.

De VBA-achtige operator

Met de VBA Like Operator kun je een tekst of string vergelijken met een patroon en kijken of er een overeenkomst is. Meestal gebruikt u de Like-operator in combinatie met jokertekens. De volgende code laat zien hoe u de Like-operator gebruikt:

123456789101112 Sub met behulp vanTheLikeOperatorInVBA()Dim waardeOne As StringvalueOne = "Laten we de uitvoer bekijken"If valueOne Like "*view*" DanMsgBox "Er is een overeenkomst, deze string bevat het woord view"AndersMsgBox "Geen overeenkomst gevonden"Stop alsEinde sub

Het resultaat is:

De jokertekens die u met de Like-operator kunt gebruiken om patroonovereenkomsten te vinden, zijn onder meer:

  • ? die overeenkomt met een enkel teken
  • # dat overeenkomt met een enkel cijfer
  • * die overeenkomt met nul of meer tekens

De volgende code laat zien hoe u de Like-operator en de ? wildcard om overeen te komen met een patroon in uw code:

123456789101112 Sub met behulp vanTheLikeOperatorWithAWildcardInVBA()Dim waardeOne As StringvalueOne = "De"Als valueOne Like "??e" DanMsgBox "Er is een overeenkomst, er is een overeenkomend patroon gevonden"AndersMsgBox "Geen overeenkomst gevonden"Stop alsEinde sub

Het opgeleverde resultaat is:

Andere nuttige VBA-stringfuncties

De VBA-functie String vervangen

De VBA Replace-functie vervangt een reeks tekens in een tekenreeks door een andere reeks tekens. De syntaxis van de VBA Replace String-functie is:

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

  • String - De originele tekst.
  • Zoeken - De subtekenreeks waarnaar moet worden gezocht in de originele tekst.
  • Vervangen - De subtekenreeks waarmee de zoeksubtekenreeks moet worden vervangen.
  • Begin (Optioneel)- De positie om te beginnen met zoeken vanuit de originele tekst. Indien leeg, wordt de waarde 1 gebruikt en begint de functie op de eerste tekenpositie.
  • Graaf (Optioneel)- Het aantal keren dat de subtekenreeks Zoek in de originele tekst moet worden vervangen. Als dit leeg is, worden alle exemplaren van de subtekenreeks Zoeken vervangen.
  • Vergelijken (Optioneel)- Dit specificeert het type vergelijking dat gemaakt moet worden. Indien leeg, wordt binaire vergelijking gebruikt.

    -vbBinaryCompare - Binaire vergelijking
    -vbTextCompare - Tekstvergelijking
    -vbDatabaseCompare - Databasevergelijking (Deze optie wordt alleen gebruikt in Microsoft Access en is een vergelijking op basis van de database.)

De volgende code laat zien hoe u de functie String vervangen gebruikt:

1234567891011 Sub met behulp vanTheReplaceStringFunction()Dim waardeOne As StringDim waardeTwee als stringvalueOne = "ProductABC"waardeTwee = Vervangen(waardeEen, "ABC", "XYZ")MsgBox-waardeTweeEinde sub

Het resultaat is:

De functie Vervangen vond de substring ABC in ProductABC en verving deze door de substring XYZ.

De VBA StrReverse-functie

De VBA StrReverse-functie keert de tekens in een bepaalde tekst of tekenreeks om. De syntaxis van de VBA StrReverse String-functie is:

StrReverse(String) waarbij:

  • String - De originele tekst.

De volgende code laat zien hoe u de VBA StrReverse-functie gebruikt om de tekens in de tekenreeks Product om te keren:

1234567891011 Sub met behulp vanTheStrReverseStringFunction()Dim waardeOne As StringDim waardeTwee als stringvalueOne = "Product"waardeTwee = StrReverse(waardeEen)MsgBox-waardeTweeEinde sub

Het resultaat is:

De VBA Len String-functie

De VBA Len-functie retourneert het aantal tekens in een tekenreeks. De syntaxis van de VBA Len String-functie is:

Len(String) waar:

  • String - De originele tekst.

De volgende code laat zien hoe u de Len String-functie gebruikt om de lengte van de string AutomateExcel te bepalen:

1234567891011 Sub met behulp vanTheLenFunction()Dim waardeOne As StringDim stringLength As IntegervalueOne = "Excel automatiseren"stringLength = Len(waardeEen)Debug.Print stringLengthEinde sub

Het resultaat is:

De Len-functie heeft alle tekens in de tekst AutomateExcel geteld, dat is 13 letters.

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave