VBA -strängar och substringsfunktioner

VBA har många strängfunktioner som gör att du kan manipulera och arbeta med text och strängar i din kod. I den här självstudien kommer vi att täcka funktioner som gör att du kan extrahera underlag från strängar, ta bort mellanslag från strängar, konvertera fallet med en text eller sträng, jämföra strängar och andra användbara strängfunktioner.

Extrahera en delsträng

VBA vänster sträng funktion

Med VBA vänster funktion kan du extrahera en delsträng från en text eller sträng som börjar från vänster sida. Syntaxen för VBA vänster strängfunktion är:

Vänster (String, Num_of_characters) där:

  • String - Originaltexten.
  • Antal_tecken - Ett heltal som anger antalet tecken som ska extraheras från originaltexten från början.

Följande kod visar hur du använder den vänstra strängfunktionen för att extrahera de fyra första tecknen i den givna strängen:

1234567891011 Sub UsingTheLeftStringFunction ()Dim valueOne As StringDim värdeTvå som strängvalueOne = "AutomateExcel"valueTwo = Vänster (valueOne, 4)MsgBox valueTwoAvsluta Sub

Resultatet är:

Den vänstra funktionen har extraherat de fyra första bokstäverna i AutomateExcel, som är Auto.

VBA högersträngsfunktion

Med VBA -högerfunktionen kan du extrahera en delsträng från en text eller sträng som börjar från höger sida. Syntaxen för VBA Right String -funktionen är:

Höger (String, Num_of_characters) där:

  • String - Originaltexten.
  • Antal_tecken - Ett heltal som anger antalet tecken som ska extraheras från originaltexten från slutet.

Följande kod visar hur du använder högersträngsfunktionen för att extrahera de fyra sista tecknen i strängen:

1234567891011 Sub UsingTheRightStringFunction ()Dim valueOne As StringDim värdeTvå som strängvalueOne = "AutomateExcel"valueTwo = Right (valueOne, 4)MsgBox valueTwoAvsluta Sub

Resultatet är:

Höger funktion har extraherat de fyra sista bokstäverna i AutomateExcel, som är xcel.

VBA Mid String -funktion

Med VBA Mid -funktionen kan du extrahera en delsträng från en text eller sträng, från vilken position som helst i strängen som du anger. Syntaxen för VBA Mid String -funktion är:

Mitt (sträng, startposition, [antal_tecken]) där:

  • String - Originaltexten.
  • Startposition - Positionen i originaltexten, där funktionen kommer att börja extrahera från.
  • Antal_tecken (Frivillig) - Ett heltal som anger antalet tecken som ska extraheras från originaltexten som börjar från Startpositionen. Om den är tom kommer MID -funktionen att returnera alla tecken från Startpositionen.

Följande kod visar hur du använder Mid String -funktionen för att extrahera fyra tecken, från den andra positionen eller tecknet i strängen:

1234567891011 Sub UsingTheMidStringFunction ()Dim valueOne As StringDim värdeTvå som strängvalueOne = "AutomateExcel"valueTwo = Mid (valueOne, 2, 4)MsgBox valueTwoAvsluta Sub

Resultatet skickas till en msgbox:

Mittfunktionen har extraherat de fyra bokstäverna i AutomateExcel från det andra tecknet/positionen/bokstaven som är utom.

Hitta positionen för en understräng

VBA Instr -strängfunktion

VBA Instr -funktionen returnerar startpositionen för en delsträng inom en annan sträng. Denna funktion är skiftlägeskänslig. Syntaxen för VBA Instr String -funktionen är:

Instr ([Start], String, Substring, [Jämför]) där:

  • Start (Frivillig) - Detta anger startpositionen för funktionen att söka från. Om det är tomt används standardvärdet 1.
  • String - Originaltexten.
  • Substräng- Delsträngen i originaltexten som du vill hitta positionen för.
  • Jämför (Frivillig)- Detta anger vilken typ av jämförelse som ska göras. Om tom används binär jämförelse.

-vbBinaryCompare - Binär jämförelse (versaler och versaler betraktas som olika)
-vbTextCompare - Textjämförelse (versaler och versaler betraktas som desamma)
-vbDatabaseCompare - Databasjämförelse (det här alternativet används endast i Microsoft Access och är en jämförelse baserad på databasen)

Följande kod visar hur du använder Instr String -funktionen för att bestämma den första förekomsten av delsträngen "Th" i huvudsträngen:

123456789101112 Sub UsingTheInstrStringFunction ()Dim valueOne As StringDim positionofSubstring Som heltalvalueOne = "Detta är texten"positionofSubstring = InStr (1, valueOne, "Th")Debug.Print positionofSubstringAvsluta Sub

Resultatet (utmatat till det omedelbara fönstret) är:

Instr -funktionen har returnerat positionen för den första förekomsten av delsträngen "Th" som är 1. Observera att denna funktion inkluderar mellanslag i räkningen.

VBA InstrRev -strängfunktion

VBA InstrRev -funktionen returnerar startpositionen för en delsträng inom en annan sträng men den börjar räkna positionen, från slutet av strängen. Denna funktion är skiftlägeskänslig. Syntaxen för VBA InstrRev -strängfunktionen är:

InstrRev (String, Substring, [Start], [Compare]) där:

  • String - Originaltexten.
  • Substräng- Delsträngen i originaltexten som du vill hitta positionen för.
  • Start (Frivillig) - Detta anger positionen att börja söka från. Om den är tom börjar funktionen att söka efter det sista tecknet.
  • Jämför (Frivillig)- Detta anger vilken typ av jämförelse som ska göras. Om tom används binär jämförelse.

-vbBinaryCompare - Binär jämförelse (versaler och versaler betraktas som olika)
-vbTextCompare - Textjämförelse (versaler och versaler betraktas som desamma)
-vbDatabaseCompare - Databasjämförelse (det här alternativet används endast i Microsoft Access och är en jämförelse baserad på databasen)

Följande kod visar hur du använder InstrRev -strängfunktionen för att bestämma den första förekomsten av delsträngen "Th" i huvudsträngen, från slutet av strängen:

1234567891011 Sub UsingTheInstrRevStringFunction ()Dim valueOne As StringDim positionofSubstring Som heltalvalueOne = "Detta är texten"positionofSubstring = InStrRev (valueOne, "Th")Debug.Print positionofSubstringAvsluta Sub

Resultatet matas ut till fönstret Omedelbart:

InstrRev -funktionen har returnerat positionen för den första förekomsten av delsträngen "Th", men börjar räkningen från slutet som är 9. Observera att denna funktion inkluderar mellanslag i räkningen.

Ta bort mellanslag från en sträng

VBA LTrim -strängfunktionen

VBA LTrim -funktionen tar bort alla ledande mellanslag från en text eller sträng. Syntaxen för VBA LTrim -strängfunktionen är:

LTrim (sträng) där:

  • String - Originaltexten.

Följande kod visar hur du använder VBA LTrim -funktionen för att ta bort de ledande mellanslagen i den givna strängen:

123456789101112 Sub UsingTheLTrimStringFunction ()Dim valueOne As StringDim värde Två som strängvalueOne = "Detta är webbplatsens adddress https://easyexcel.net/excel/"valueTwo = LTrim (valueOne)MsgBox valueOneMsgBox valueTwoAvsluta Sub

Resultaten är:

LTrim -funktionen har tagit bort de ledande utrymmena för valuetwo, vilket visas i den andra meddelanderutan.

VBA RTrim -strängfunktionen

VBA RTrim -funktionen tar bort alla bakre mellanslag från en text eller sträng. Syntaxen för VBA RTrim -strängfunktionen är:

RTrim (sträng) där:

  • String - Originaltexten.

Följande kod visar hur du använder VBA RTrim -funktionen för att ta bort de bakre utrymmena i den givna strängen:

123456789101112 Sub UsingTheRTrimStringFunction ()Dim valueOne As StringDim värde Två som strängvalueOne = "Detta är webbplatsens adddress https://easyexcel.net/excel/"valueTwo = RTrim (valueOne)MsgBox valueOneMsgBox valueTwoAvsluta Sub

Resultaten som levereras är:

RTrim -funktionen har tagit bort de bakre utrymmena för värde två, som visas i den andra meddelanderutan.

VBA -trimningssträngfunktionen

VBA -trimfunktionen tar bort alla ledande och bakre mellanslag från en text eller sträng. Syntaxen för VBA Trim String -funktion är:

Trimma (sträng) där:

  • String - Originaltexten.

Följande kod visar hur du använder VBA -trimningsfunktionen för att ta bort de ledande och bakre blankstegen i den givna strängen:

123456789101112 Sub UsingTheTrimStringFunction ()Dim valueOne As StringDim värdeTvå som strängvalueOne = "Detta är webbplatsens adddress https://easyexcel.net/excel/"valueTwo = Trim (valueOne)MsgBox valueOneMsgBox valueTwoAvsluta Sub

Resultaten är:

Trimfunktionen har tagit bort de främre och bakre utrymmena för värde två, vilket visas i den andra meddelanderutan.

VBA -fallfunktioner

VBA LCas strängfunktion

VBA LCase -funktionen konverterar bokstäver i en text eller sträng till gemener. Syntaxen för VBA LCase -strängfunktionen är:

LCase (sträng) där:

  • String - Originaltexten.

Följande kod visar hur du använder LCase String -funktionen för att konvertera alla bokstäver i den givna strängen till gemener:

1234567891011 Sub UsingTheLCaseStringFunction ()Dim valueOne As StringDim värdeTvå som strängvalueOne = "DETTA ÄR PRODUKTEN"valueTwo = LCase (valueOne)MsgBox valueTwoAvsluta Sub

Resultatet är:

LCase -funktionen har konverterat alla bokstäver i strängen till gemener.

VBA UCas strängfunktion

VBA UCase -funktionen konverterar bokstäver i en text eller sträng till versaler. Syntaxen för VBA UCase -strängfunktionen är:

UCase (sträng) där:

  • String - Originaltexten.

Följande kod visar hur du använder UCase String -funktionen för att konvertera alla bokstäver i den givna strängen till versaler:

1234567891011 Sub UsingTheUCaseStringFunction ()Dim valueOne As StringDim värdeTvå som strängvalueOne = "det här är produkten"valueTwo = UCase (valueOne)MsgBox valueTwoAvsluta Sub

Resultatet är:

UCase -funktionen har konverterat alla bokstäver i strängen till versaler.

VBA StrConv -funktion

VBA StrConv -funktionen kan konvertera bokstäver i en text eller sträng till versaler, gemener, stora bokstäver eller unicode beroende på vilken typ av konvertering du anger. Syntaxen för VBA StrConv -strängfunktionen är:

StrConv (String, Conversion, [LCID]) där:

  • String - Originaltexten.
  • Konvertering - Den typ av konvertering du vill ha.
  • [LCID] (Valfritt) -En valfri parameter som anger LocaleID. Om det är tomt används systemet LocaleID.

Följande kod visar hur du använder StrConv -strängfunktionen för att konvertera strängen till rätt bokstav:

1234567891011 Sub UsingTheStrConvStringFunction ()Dim valueOne As StringDim värde Två som strängvalueOne = "det här är produkten"valueTwo = StrConv (valueOne, vbProperCase)MsgBox valueTwoAvsluta Sub

Resultatet är:

Du anger vilken konverteringstyp du vill utföra med hjälp av omvandlingsparametern:

  • vbLowerCase konverterar alla bokstäver i texten till små bokstäver.
  • vbUpperCase konverterar alla bokstäver i texten till versaler.
  • vbProperCase konverterar den första bokstaven i varje ord i texten till versaler, medan alla andra bokstäver behålls som gemener.
  • vbUnicode konverterar en sträng till unicode.
  • vbFromUnicode konverterar en sträng från unicode till standardkodsidan för systemet.

Jämför strängar

VBA StrComp -funktion

Med VBA StrComp String -funktion kan du jämföra två strängar. Funktionen returnerar:

  • 0 om de två strängarna matchar
  • -1 om string1 är mindre än string2
  • 1 om string1 är större än string2
  • Ett nollvärde om någon av strängarna var Null

Följande kod visar hur du använder StrComp -funktionen för att jämföra två strängar:

123456789101112 Sub UsingTheStrCompStringFunction ()Dim valueOne As StringDim värdeTvå som strängDim resultofComparison As IntegervalueOne = "AutomateExcel"valueTwo = "AutomateExcel"resultofComparison = StrComp (valueOne, valueTwo)Debug.Print resultofComparisonAvsluta Sub

Resultatet är:

StrComp -funktionen har hittat en exakt matchning mellan de två strängarna och returnerat 0.

VBA Like Operator

Med VBA Like Operator kan du jämföra en text eller sträng med ett mönster och se om det finns en matchning. Du brukar använda Like Operator i kombination med jokertecken. Följande kod visar hur du använder liknande operatör:

123456789101112 Sub UsingTheLikeOperatorInVBA ()Dim valueOne As StringvalueOne = "Låt oss se utdata"Om valueOne gillar "*view*" DåMsgBox "Det finns en matchning, den här strängen innehåller ordet vy"AnnanMsgBox "Ingen matchning hittades"Avsluta omAvsluta Sub

Resultatet är:

Jokertecken som du kan använda med Like Operator för att hitta mönstermatchningar inkluderar:

  • ? som matchar en enda karaktär
  • # som matchar en enda siffra
  • * som matchar noll eller fler tecken

Följande kod visar hur du skulle använda Like Operator och? jokertecken för att matcha ett mönster i din kod:

123456789101112 Sub som använderTheLikeOperatorWithAWildcardInVBA ()Dim valueOne As StringvalueOne = "The"Om valueOne Like "?? e" DåMsgBox "Det finns en matchning, ett matchande mönster hittades"AnnanMsgBox "Ingen matchning hittades"Avsluta omAvsluta Sub

Resultatet som levereras är:

Andra användbara VBA -strängfunktioner

VBA Replace String -funktionen

VBA -ersättningsfunktionen ersätter en uppsättning tecken i en sträng med en annan uppsättning tecken. Syntaxen för VBA Replace String -funktionen är:

Ersätt (String, Find, Replace, [Start], [Count], [Compare]) där:

  • String - Originaltexten.
  • Sök - Delsträngen att söka efter i originaltexten.
  • Ersätt - Delsträngen för att ersätta söksträngen Sök med.
  • Start (Frivillig)- Positionen för att börja söka inifrån originaltexten. Om det är tomt används värdet 1 och funktionen startar vid den första teckenpositionen.
  • Räkna (Frivillig)- Antalet förekomster för delsträngen Sök i originaltexten som ska ersättas. Om det är tomt ersätts alla förekomster i delsträngen Sök.
  • Jämför (Frivillig)- Detta anger vilken typ av jämförelse som ska göras. Om tom används binär jämförelse.

    -vbBinaryCompare - Binär jämförelse
    -vbTextCompare - Textjämförelse
    -vbDatabaseCompare - Databasjämförelse (det här alternativet används endast i Microsoft Access och är en jämförelse baserad på databasen.)

Följande kod visar hur du använder ersättningssträngfunktionen:

1234567891011 Sub UsingTheReplaceStringFunction ()Dim valueOne As StringDim värde Två som strängvalueOne = "ProductABC"valueTwo = Ersätt (valueOne, "ABC", "XYZ")MsgBox valueTwoAvsluta Sub

Resultatet är:

Ersättningsfunktionen hittade delsträngens ABC inom ProductABC och ersatte den med delsträngen XYZ.

VBA StrReverse -funktion

VBA StrReverse -funktionen vänder tecknen i en given text eller sträng. Syntaxen för VBA StrReverse -strängfunktionen är:

StrReverse (sträng) där:

  • String - Originaltexten.

Följande kod visar hur du använder VBA StrReverse -funktionen för att vända tecknen i strängen Produkt:

1234567891011 Sub UsingTheStrReverseStringFunction ()Dim valueOne As StringDim värdeTvå som strängvalueOne = "Produkt"valueTwo = StrReverse (valueOne)MsgBox valueTwoAvsluta Sub

Resultatet är:

VBA Len -strängfunktionen

VBA Len -funktionen returnerar antalet tecken i en textsträng. Syntaxen för VBA Len String -funktionen är:

Len (sträng) där:

  • String - Originaltexten.

Följande kod visar hur du använder Len String -funktionen för att bestämma längden på strängen AutomateExcel:

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

Resultatet är:

Len -funktionen har räknat alla tecken i texten AutomateExcel, som är 13 bokstäver.

Du kommer att bidra till utvecklingen av webbplatsen, dela sidan med dina vänner

wave wave wave wave wave