VBA har mange strengfunktioner, der giver dig mulighed for at manipulere og arbejde med tekst og strenge i din kode. I denne vejledning kommer vi til at dække funktioner, der giver dig mulighed for at udtrække substrings fra strenge, fjerne mellemrum fra strenge, konvertere tilfælde af en tekst eller streng, sammenligne strenge og andre nyttige strengfunktioner.
Udtrækning af en understreng
VBA venstre streng funktion
Med VBA venstre funktion kan du udtrække en delstreng fra en tekst eller streng, der starter fra venstre side. Syntaksen for VBA Left String -funktionen er:
Venstre (streng, antal_tegn) hvor:
- String - Den originale tekst.
- Antal_tegn - Et helt tal, der angiver antallet af tegn, der skal udtrækkes fra den originale tekst fra begyndelsen.
Følgende kode viser dig, hvordan du bruger funktionen Venstre streng til at udtrække de fire første tegn i den givne streng:
1234567891011 | Sub UsingTheLeftStringFunction ()Dim valueOne As StringDim værdiTo som strengvalueOne = "AutomateExcel"valueTwo = Venstre (valueOne, 4)MsgBox valueTwoAfslut Sub |
Resultatet er:
Den venstre funktion har hentet de første fire bogstaver i AutomateExcel, som er Auto.
VBA højre streng funktion
VBA Right -funktionen giver dig mulighed for at udtrække en delstreng fra en tekst eller streng, der starter fra højre side. Syntaksen for VBA Right String -funktionen er:
Højre (streng, antal_tegn) hvor:
- String - Den originale tekst.
- Antal_tegn - Et helt tal, der angiver antallet af tegn, der skal udtrækkes fra den originale tekst fra slutningen.
Følgende kode viser dig, hvordan du bruger funktionen Højre streng til at udtrække de sidste fire tegn i strengen:
1234567891011 | Sub UsingTheRightStringFunction ()Dim valueOne As StringDim værdiTo som strengvalueOne = "AutomateExcel"valueTwo = Right (valueOne, 4)MsgBox valueTwoAfslut Sub |
Resultatet er:
Den højre funktion har udtrækket de sidste fire bogstaver i AutomateExcel, som er xcel.
VBA Mid String -funktion
Med VBA Mid -funktionen kan du udtrække en delstreng fra en tekst eller streng, startende fra en hvilken som helst position i den streng, du angiver. Syntaksen for VBA Mid String -funktionen er:
Midt (streng, startposition, [antal_tegn]) hvor:
- String - Den originale tekst.
- Startposition - Positionen i den originale tekst, hvor funktionen vil begynde at udtrække fra.
- Antal_tegn (Valgfri) - Et helt tal, der angiver antallet af tegn, der skal udtrækkes fra den originale tekst, der starter fra Startpositionen. Hvis den er tom, returnerer MID -funktionen alle tegnene fra Startpositionen.
Følgende kode viser dig, hvordan du bruger Mid String -funktionen til at udtrække fire tegn, startende fra den anden position eller tegn i strengen:
1234567891011 | Sub UsingTheMidStringFunction ()Dim valueOne As StringDim værdiTo som strengvalueOne = "AutomateExcel"valueTwo = Midt (valueOne, 2, 4)MsgBox valueTwoAfslut Sub |
Resultatet sendes til en msgbox:
Midfunktionen har hentet de fire bogstaver i AutomateExcel ud fra det andet tegn/position/bogstav, der er utom.
Find positionen af en understreng
VBA Instr streng funktion
VBA Instr -funktionen returnerer startpositionen for en delstreng inden for en anden streng. Denne funktion er store og små bogstaver. Syntaksen for VBA Instr String -funktionen er:
Instr ([Start], String, Substring, [Compare]) hvor:
- Start (Valgfri) - Dette angiver startpositionen for funktionen, der skal søges fra. Hvis den er blank, bruges standardværdien på 1.
- String - Den originale tekst.
- Substring- Delstrengen i den originale tekst, som du vil finde placeringen af.
- Sammenlign (Valgfri)- Dette angiver den sammenligningstype, der skal foretages. Hvis den er blank, bruges binær sammenligning.
-vbBinaryCompare - Binær sammenligning (store og små bogstaver betragtes som forskellige)
-vbTextCompare - Tekst sammenligning (store og små bogstaver betragtes som det samme)
-vbDatabaseCompare - Databasesammenligning (Denne indstilling bruges kun i Microsoft Access og er en sammenligning baseret på databasen)
Følgende kode viser dig, hvordan du bruger Instr String -funktionen til at bestemme den første forekomst af delstrengen "Th" i hovedstrengen:
123456789101112 | Sub UsingTheInstrStringFunction ()Dim valueOne As StringDim positionofSubstring As IntegervalueOne = "Dette er teksten"positionofSubstring = InStr (1, valueOne, "Th")Debug.Print position ofSubstringAfslut Sub |
Resultatet (udsendt til det umiddelbare vindue) er:
Instr -funktionen har returneret positionen for den første forekomst af delstrengen "Th", som er 1. Bemærk, at denne funktion inkluderer mellemrum i tællingen.
VBA InstrRev strengfunktion
VBA InstrRev -funktionen returnerer startpositionen for en delstreng inden for en anden streng, men den begynder at tælle positionen fra slutningen af strengen. Denne funktion er store og små bogstaver. Syntaksen for VBA InstrRev String -funktionen er:
InstrRev (String, Substring, [Start], [Compare]) hvor:
- String - Den originale tekst.
- Substring- Delstrengen i den originale tekst, som du vil finde placeringen af.
- Start (Valgfri) - Dette angiver den position, der skal startes søgning fra. Hvis den er tom, begynder funktionen at søge fra det sidste tegn.
- Sammenlign (Valgfri)- Dette angiver den sammenligningstype, der skal foretages. Hvis den er blank, bruges binær sammenligning.
-vbBinaryCompare - Binær sammenligning (store og små bogstaver betragtes som forskellige)
-vbTextCompare - Tekst sammenligning (store og små bogstaver betragtes som det samme)
-vbDatabaseCompare - Databasesammenligning (Denne indstilling bruges kun i Microsoft Access og er en sammenligning baseret på databasen)
Den følgende kode viser dig, hvordan du bruger InstrRev -strengfunktionen til at bestemme den første forekomst af delstrengen "Th" i hovedstrengen, startende fra slutningen af strengen:
1234567891011 | Sub UsingTheInstrRevStringFunction ()Dim valueOne As StringDim positionofSubstring As IntegervalueOne = "Dette er teksten"positionofSubstring = InStrRev (valueOne, "Th")Debug.Print position ofSubstringAfslut Sub |
Resultatet udsendes til det øjeblikkelige vindue:
InstrRev -funktionen har returneret positionen for den første forekomst af delstrengen "Th", men tællingen startes fra slutningen, som er 9. Bemærk, at denne funktion inkluderer mellemrum i tællingen.
Fjernelse af mellemrum fra en streng
VBA LTrim -strengfunktionen
VBA LTrim -funktionen fjerner alle de ledende mellemrum fra en tekst eller streng. Syntaksen for VBA LTrim String -funktionen er:
LTrim (streng) hvor:
- String - Den originale tekst.
Følgende kode viser dig, hvordan du bruger VBA LTrim -funktionen til at fjerne de ledende mellemrum i den givne streng:
123456789101112 | Sub UsingTheLTrimStringFunction ()Dim valueOne As StringDim værdiTo som strengvalueOne = "Dette er webstedets adresse https://easyexcel.net/excel/"valueTwo = LTrim (valueOne)MsgBox valueOneMsgBox valueTwoAfslut Sub |
Resultaterne er:
LTrim -funktionen har fjernet de ledende mellemrum til valuetwo, som er vist i den anden meddelelsesboks.
VBA RTrim -strengfunktionen
VBA RTrim -funktionen fjerner alle de efterfølgende mellemrum fra en tekst eller streng. Syntaksen for VBA RTrim String -funktionen er:
RTrim (streng) hvor:
- String - Den originale tekst.
Følgende kode viser dig, hvordan du bruger VBA RTrim -funktionen til at fjerne de efterfølgende mellemrum i den givne streng:
123456789101112 | Sub UsingTheRTrimStringFunction ()Dim valueOne As StringDim værdiTo som strengvalueOne = "Dette er webstedets adresse https://easyexcel.net/excel/"valueTwo = RTrim (valueOne)MsgBox valueOneMsgBox valueTwoAfslut Sub |
De leverede resultater er:
RTrim -funktionen har fjernet de efterfølgende mellemrum til valuetwo, som er vist i den anden meddelelsesboks.
VBA Trim String -funktionen
VBA -trimfunktionen fjerner alle indledende og efterfølgende mellemrum fra en tekst eller streng. Syntaksen for VBA Trim String -funktionen er:
Trim (streng) hvor:
- String - Den originale tekst.
Følgende kode viser dig, hvordan du bruger VBA -trimfunktionen til at fjerne de indledende og bageste mellemrum i den givne streng:
123456789101112 | Sub UsingTheTrimStringFunction ()Dim valueOne As StringDim værdiTo som strengvalueOne = "Dette er webstedets adresse https://easyexcel.net/excel/"valueTwo = Trim (valueOne)MsgBox valueOneMsgBox valueTwoAfslut Sub |
Resultaterne er:
Trim -funktionen har fjernet de førende og bageste mellemrum til valuetwo, som er vist i den anden meddelelsesboks.
VBA -sagsfunktioner
VBA LCase -strengfunktionen
VBA LCase -funktionen konverterer bogstaver i en tekst eller streng til små bogstaver. Syntaksen for VBA LCase String -funktionen er:
LCase (streng) hvor:
- String - Den originale tekst.
Følgende kode viser dig, hvordan du bruger LCase String -funktionen til at konvertere alle bogstaverne i den givne streng til små bogstaver:
1234567891011 | Sub UsingTheLCaseStringFunction ()Dim valueOne As StringDim værdiTo som strengvalueOne = "DETTE ER PRODUKTET"valueTwo = LCase (valueOne)MsgBox valueTwoAfslut Sub |
Resultatet er:
LCase -funktionen har konverteret alle bogstaverne i strengen til små bogstaver.
VBA UCase strengfunktion
VBA UCase -funktionen konverterer bogstaver i en tekst eller streng til store bogstaver. Syntaksen for VBA UCase String -funktionen er:
UCase (streng) hvor:
- String - Den originale tekst.
Følgende kode viser dig, hvordan du bruger UCase String -funktionen til at konvertere alle bogstaverne i den givne streng til store bogstaver:
1234567891011 | Sub UsingTheUCaseStringFunction ()Dim valueOne As StringDim værdiTo som strengvalueOne = "dette er produktet"valueTwo = UCase (valueOne)MsgBox valueTwoAfslut Sub |
Resultatet er:
UCase -funktionen har konverteret alle bogstaverne i strengen til store bogstaver.
VBA StrConv -funktionen
VBA StrConv -funktionen kan konvertere bogstaver i en tekst eller streng til store, små, rigtige eller unicode afhængigt af den konverteringstype, du angiver. Syntaksen for VBA StrConv String -funktionen er:
StrConv (String, Conversion, [LCID]) hvor:
- String - Den originale tekst.
- Konvertering - Den type konvertering, du ønsker.
- [LCID] (Valgfrit) -En valgfri parameter, der angiver LocaleID. Hvis det er tomt, bruges systemets lokal -id.
Følgende kode viser dig, hvordan du bruger StrConv -strengfunktionen til at konvertere strengen til en korrekt sag:
1234567891011 | Sub UsingTheStrConvStringFunction ()Dim valueOne As StringDim værdiTo som strengvalueOne = "dette er produktet"valueTwo = StrConv (valueOne, vbProperCase)MsgBox valueTwoAfslut Sub |
Resultatet er:
Du angiver den konverteringstype, du vil udføre ved hjælp af konverteringsparameteren:
- vbLowerCase konverterer alle bogstaverne i teksten til små bogstaver.
- vbUpperCase konverterer alle bogstaverne i teksten til store bogstaver.
- vbProperCase konverterer det første bogstav i hvert ord i teksten til store bogstaver, mens alle de andre bogstaver bevares som små bogstaver.
- vbUnicode konverterer en streng til unicode.
- vbFromUnicode konverterer en streng fra unicode til systemets standardkodeside.
Sammenligning af strenge
VBA StrComp -funktionen
VBA StrComp String -funktionen giver dig mulighed for at sammenligne to strenge. Funktionen returnerer:
- 0 hvis de to strenge matcher
- -1 hvis streng1 er mindre end streng2
- 1 hvis streng1 er større end streng2
- En nulværdi, hvis en af strengene var Null
Følgende kode viser dig, hvordan du bruger StrComp -funktionen til at sammenligne to strenge:
123456789101112 | Sub UsingTheStrCompStringFunction ()Dim valueOne As StringDim værdiTo som strengDim resultofComparison As IntegervalueOne = "AutomateExcel"valueTwo = "AutomateExcel"resultofComparison = StrComp (valueOne, valueTwo)Debug.Udskriv resultat af sammenligningAfslut Sub |
Resultatet er:
StrComp -funktionen har fundet en nøjagtig match mellem de to strenge og returneret 0.
VBA -lignende operatør
VBA Like Operator giver dig mulighed for at sammenligne en tekst eller streng med et mønster og se, om der er et match. Du vil normalt bruge Like -operatøren sammen med jokertegn. Følgende kode viser dig, hvordan du bruger Like -operatøren:
123456789101112 | Sub UsingTheLikeOperatorInVBA ()Dim valueOne As StringvalueOne = "Lad os se output"Hvis valueOne kan lide "*visning*" SåMsgBox "Der er et match, denne streng indeholder ordet view"AndetMsgBox "Der blev ikke fundet nogen match"Afslut HvisAfslut Sub |
Resultatet er:
De jokertegn, du kan bruge med Like Operator til at finde mønstermatcher, omfatter:
- ? der matcher en enkelt karakter
- # som matcher et enkelt ciffer
- * der matcher nul eller flere tegn
Følgende kode viser dig, hvordan du vil bruge Like -operatøren og? jokertegn, der matcher et mønster i din kode:
123456789101112 | Sub UsingTheLikeOperatorWithAWildcardInVBA ()Dim valueOne As StringvalueOne = "The"Hvis valueOne Like "?? e" SåMsgBox "Der er et match, et matchende mønster blev fundet"AndetMsgBox "Der blev ikke fundet nogen match"Afslut HvisAfslut Sub |
Det leverede resultat er:
Andre nyttige VBA -strengfunktioner
VBA Replace String -funktionen
VBA Replace -funktionen erstatter et sæt tegn i en streng med et andet sæt tegn. Syntaksen for VBA Replace String -funktionen er:
Erstat (String, Find, Replace, [Start], [Count], [Compare]) hvor:
- String - Den originale tekst.
- Find - Understrengen, der skal søges efter i originalteksten.
- Erstat - Delstrengen, der skal erstattes Find understrengen med.
- Start (Valgfri)- Positionen til at begynde at søge inde fra originalteksten. Hvis den er blank, bruges værdien 1, og funktionen starter ved den første tegnposition.
- Tæl (Valgfri)- Antallet af forekomster af understrengen Find i den originale tekst, der skal udskiftes. Hvis den er tom, erstattes alle forekomster af understrengen Find.
- Sammenlign (Valgfri)- Dette angiver den sammenligningstype, der skal foretages. Hvis den er blank, bruges binær sammenligning.
-vbBinaryCompare - Binær sammenligning
-vbTextCompare - Tekst sammenligning
-vbDatabaseCompare - Databasesammenligning (Denne indstilling bruges kun i Microsoft Access og er en sammenligning baseret på databasen.)
Følgende kode viser dig, hvordan du bruger funktionen Erstat streng:
1234567891011 | Sub UsingTheReplaceStringFunction ()Dim valueOne As StringDim værdiTo som strengvalueOne = "ProductABC"valueTwo = Erstat (valueOne, "ABC", "XYZ")MsgBox valueTwoAfslut Sub |
Resultatet er:
Udskiftningsfunktionen fandt understrengen ABC i ProductABC og erstattede den med understrengen XYZ.
VBA StrReverse -funktionen
VBA StrReverse -funktionen vender tegnene i en given tekst eller streng om. Syntaksen for VBA StrReverse String -funktionen er:
StrReverse (streng) hvor:
- String - Den originale tekst.
Følgende kode viser dig, hvordan du bruger VBA StrReverse -funktionen til at vende tegnene i strengen Produkt:
1234567891011 | Sub UsingTheStrReverseStringFunction ()Dim valueOne As StringDim værdiTo som strengvalueOne = "Produkt"valueTwo = StrReverse (valueOne)MsgBox valueTwoAfslut Sub |
Resultatet er:
VBA Len -strengfunktionen
VBA Len -funktionen returnerer antallet af tegn i en tekststreng. Syntaksen for VBA Len String -funktionen er:
Len (streng) hvor:
- String - Den originale tekst.
Følgende kode viser dig, hvordan du bruger Len String -funktionen til at bestemme længden af strengen AutomateExcel:
1234567891011 | Sub UsingTheLenFunction ()Dim valueOne As StringDim stringLength As IntegervalueOne = "AutomateExcel"stringLength = Len (valueOne)Debug.Print stringLengthAfslut Sub |
Resultatet er:
Len -funktionen har talt alle tegnene i teksten AutomateExcel, som er 13 bogstaver.