Denne opplæringen vil demonstrere hvordan du bruker Replace VBA -funksjonen til å erstatte tekststrenger.
Erstatt funksjon
VBA Replace -funksjonen returnerer en streng, med substitusjoner gjort. Ved bruk av valgfrie parametere kan den nye strengen begynne på posisjonen spesifisert av start og slutter på slutten av den opprinnelige strengen.
VBA Erstatt Erstatt en Substring
VBA Replace -funksjonen kan brukes til å erstatte enhver delstreng som finnes, i hver del den blir funnet.
12345678910111213141516 | Sub ReplaceExample_1 ()MsgBox Erstatt ("ABCABCABC", "A", "!")'Resultatet er: "! BC! BC! BC"MsgBox Replace ("Jeg liker rosa, rød og svart", "rosa", "lilla")'Resultatet er: "Jeg liker lilla, rødt og svart"MsgBox Erstatt ("A, B, C, A, B, C, A, B, C", ",", ",")'Resultatet er: "ABCABCABC"MsgBox Replace ("ABCABCABC", "ABC", "!")'Resultatet er: "!!!"MsgBox Erstatt ("ABCABCABC", "ABc", "!")'Resultatet er: "ABCABCABC"MsgBox Replace ("ABCABCABC", "ZBC", "!")'Resultatet er: "ABCABCABC"Slutt Sub |
VBA Bytt ut startposisjon
VBA Replace -funksjonen kan brukes til å erstatte enhver delstreng som finnes, i hver del den blir funnet. Hvis vi tildeler en startposisjon, ville resultatet være delen av den opprinnelige strengen etter det utgangspunktet.
12345678910111213 | Sub ReplaceExample_2 ()MsgBox Erstatt ("ABCABCABC", "A", "123") 'Resultat er: "123BC123BC123BC"MsgBox Erstatt ("ABCABCABC", "A", "123", 2) 'Resultat er: "BC123BC123BC"MsgBox Erstatt ("ABCABCABC", "A", "123", 7) 'Resultat er: "123BC"MsgBox Erstatt ("ABCABCABC", "A", "123", 8) 'Resultat er: "BC"MsgBox Erstatt ("ABCABCABC", "ABC", "!@") 'Resultat er: "!@!@!@"MsgBox Erstatt ("ABCABCABC", "ABC", "!@", 2) 'Resultat er: "BC!@!@"MsgBox Erstatt ("ABCABCABC", "ABC", "!@", 6) 'Resultat er: "C!@"MsgBox Erstatt ("ABCABCABC", "ABC", "!@", 7) 'Resultat er: "!@"MsgBox Erstatt ("ABCABCABC", "ABC", "!@", 8) 'Resultat er: "BC"Slutt Sub |
VBA Erstatt bare noen få forekomster
VBA Replace -funksjonen kan brukes til å erstatte enhver delstreng som finnes, i hver del den blir funnet. Vi kan valgfritt bestemme hvor mange hendelser som skal erstattes.
123456789101112 | Sub ReplaceExample_3 ()MsgBox Erstatt ("ABCABCABC", "A", "12") 'Resultat er: "12BC12BC12BC"MsgBox Erstatt ("ABCABCABC", "A", "12",, 1) 'Resultat er: "12BCABCABC"MsgBox Erstatt ("ABCABCABC", "A", "12",, 2) 'Resultat er: "12BC12BCABC"MsgBox Erstatt ("ABCABCABC", "A", "12",, 3) 'Resultat er: "12BC12BC12BC"MsgBox Erstatt ("ABCABCABC", "A", "12",, 5) 'Resultat er: "12BC12BC12BC"MsgBox Replace ("ABCABCABC", "A", "12", 3, 1)'Resultatet er: "C12BCABC"'Vi erstattet A med 12, 1 gang fra posisjon 3 i den opprinnelige strengen.Slutt Sub |
VBA Erstatt tilfellefølsomhet
VBA Erstatt funksjon som standard er store og små bokstaver. Du kan endre denne oppførselen til store og små bokstaver med en valgfri parameter (vbTextCompare). I så fall må du også definere startposisjonen for søket.
12345678910111213 | Sub ReplaceExample_4 ()MsgBox Replace ("ABcABCABc", "ABc", "12")'Resultatet er: "12ABC12"MsgBox Replace ("ABcABCABc", "ABc", "12",,, vbTextCompare)'Resultatet er: "121212"'Når vi bruker vbTextCompare må vi legge til de 2 andre valgfrie argumentene:'start og telleMsgBox Replace ("ABcABCABcABc", "ABc", "12", 3, 1)'Resultatet er: "cABC12ABc"'Startet fra posisjon 3 og erstattet ABC bare 1 gang.Slutt Sub |
Du kan også utføre en skift mellom store og små bokstaver ved å legge til Alternativ sammenligne tekst øverst i modulen:
1 | Alternativ Sammenlign tekst |
VBA Bytt ut doble sitater
VBA Replace -funksjonen kan erstatte det doble anførselstegnet som brukes til å avgrense starten og slutten på en streng.
VBA Chr -funksjonen kan returnere et tegn fra tallet i tegnsettet.
1 | MsgBox Chr (34) 'Resultat er: " |
Eller
1 | MsgBox Chr (64) 'Resultat er: @ |
Dobbel anførselstegn kan brukes inne i VBA Erstatt funksjon ved å bruke “” ”” eller VBA -funksjon Chr (34).
12345678910111213 | Sub ReplaceExample_5 ()Dim StrEx som strengStrEx = "AB" "AB" ""MsgBox StrEx 'resultat er: AB "AB"MsgBox Replace (StrEx, Chr (34), "12")'Resultatet er: AB12AB12MsgBox Replace (StrEx, "" "", "DQ")'Resultatet er: "ABDQABDQ"Slutt Sub |
VBA Bytt ut bruddlinjen i cellen
VBA Replace -funksjonen kan finne spesialtegnet for skillelinjen i en celle og fjerne den eller erstatte den med et mellomromstegn. Spesialtegnet for brekkelinjen kan legges inn i en celle ved hjelp av hurtigtasten Alt+Enter og kan brukes i VBA -koden med sitt tegnsettnummer ved hjelp av VBA -funksjonen Chr (10).
1234567891011121314 | Sub ReplaceExample_6 ()Dim StrEx As String 'Definer en strengvariabel'Les verdien av celle A2 i regnearkark1StrEx = ThisWorkbook.Worksheets ("Sheet1"). Område ("A2"). Verdi'Bruddlinjetegnet som er angitt med Alt+Enter er Chr (10) og er usynlig.'Denne kodelinjen erstatter tegnet med mellomromStrEx = Erstatt (StrEx, Chr (10), "")'Skriv den erstattede verdien i celle B2 i regnearkark1ThisWorkbook.Worksheets ("Ark1"). Område ("B2"). Verdi = StrExSlutt Sub |