Excel VBA: Sådan erstatter du tekst i en streng (5 effektive måder)

  • Del Dette
Hugh West

Hvis du leder efter måder at erstatte tekst i en streng ved hjælp af Excel VBA , så vil du finde denne artikel nyttig. Udskiftning af en bestemt tekstdel kan spare meget tid ved at skrive tekststrengene igen. Så lad os gå ind i hovedartiklen for at få oplysninger om denne udskiftningsopgave.

Download arbejdsbog

Udskift tekst i String.xlsm

5 måder at erstatte tekst i en streng ved hjælp af Excel VBA

Her har vi følgende datasæt, der indeholder nogle poster med medarbejdernes e-mail id'er. Vores opgave er at erstatte de gamle domænenavne med de nye. I de følgende metoder vil vi arbejde med dette datasæt sammen med nogle tilfældige tekststrenge for at erstatte den ønskede tekst med VBA koder.

Vi har brugt Microsoft Excel 365 version her, men du kan bruge andre versioner, hvis det passer dig.

Metode-01: Udskift tekst fra n-te position af en tilfældig streng

Her vil vi erstatte tekst i en tilfældig tekststreng for forskellige startpositioner.

Step-01 :

➤ Gå til Udvikler Fane>> Kode Gruppe>> Visual Basic Mulighed.

Derefter er det Visual Basic-editor vil åbne sig.

➤ Gå til Indsæt Fane>> Modul Mulighed.

Herefter skal en Modul vil blive oprettet.

Step-02 :

➤ Skriv følgende kode

 Sub substitution_of_text_1() Dim full_txt_str, updated_str As String full_txt_str = "Hundred Cars Fifty Cars Ten Cars" updated_str = Replace(full_txt_str, "Cars", "Bicycles", 1) MsgBox updated_str End Sub 

Her har vi erklæret full_txt_str og updated_str som String og derefter tildelt full_txt_str til en tilfældig tekststreng- "Hundrede biler Halvtreds biler Halvtreds biler Ti biler" . Så er den VBA REPLACE-funktion anvendes til at erstatte Biler del af denne tilfældige streng med Cykler og 1 anvendes her til at starte udskiftningen fra position 1 af denne streng. Endelig har vi tildelt denne nye tekststreng til updated_str og med en meddelelsesboks ( MsgBox ) vil vi se resultatet.

➤ Tryk på F5 .

Så en beskedboks vil blive vist med den nye tekststreng med den erstattede tekst Cykler .

➤ For at udføre udskiftningsprocessen fra den anden instans af Biler bruge følgende kode.

 Sub substitution_of_text_1() Dim full_txt_str, updated_str As String full_txt_str = "Hundred Cars Fifty Cars Ten Cars" updated_str = Replace(full_txt_str, "Cars", "Bicycles", 14) MsgBox updated_str End Sub 

Her har vi brugt udgangspositionen som 14 fordi vi ønsker at have den del af strengen efter Hundrede biler og erstatte den Biler her.

➤ Efter kører koden, vil vi få følgende beskedboks med den tekststreng med udgangspunkt i teksten Halvtreds og med Cykler i stillingen som Biler .

➤ For kun at have den sidste del af denne streng anvender vi følgende kode.

 Sub substitution_of_text_1() Dim full_txt_str, updated_str As String full_txt_str = "Hundred Cars Fifty Cars Ten Cars" updated_str = Replace(full_txt_str, "Cars", "Bicycles", 25) MsgBox updated_str End Sub 

Her har vi brugt udgangspositionen som 25 fordi vi ønsker at have den del af strengen efter Halvtreds biler og erstatte den Biler med Cykler her.

Endelig vil vi have en beskedboks med den ønskede del af strengen erstattet med Cykler .

Læs mere: Excel VBA: Udskift tegn i streng efter position (4 effektive måder)

Metode-02: Erstat tekst for n-te forekomst af en tilfældig streng ved hjælp af Excel VBA

I dette afsnit vil vi erstatte en tekst i en tilfældig streng for forskellige antal forekomster ved hjælp af en VBA kode.

Trin :

➤ Følg Step-01 Metode-1 .

➤ Indtast følgende kode.

 Sub substitution_of_text_2() Dim full_txt_str, updated_str As String full_txt_str = "Hundred Cars Fifty Cars Ten Cars" updated_str = Replace(full_txt_str, "Cars", "Bicycles", 1, 1) MsgBox updated_str End Sub 

Her har vi erklæret full_txt_str og updated_str som String og derefter tildelt full_txt_str til en tilfældig tekststreng- "Hundrede biler Halvtreds biler Halvtreds biler Ti biler" . Herefter er det REPLACE-funktion anvendes til at erstatte Biler del af denne tilfældige streng med Cykler , 1 anvendes her til at starte udskiftningen fra position 1 af denne streng, og den endelige 1 er til at tælle antallet af forekomster. Ved at bruge 1 som tælletal definerer vi udskiftningen af den første Biler Endelig har vi tildelt denne nye tekststreng til updated_str og med en meddelelsesboks ( MsgBox ) vil vi se resultatet.

➤ Tryk på F5 .

Herefter vil en beskedboks vil blive vist med den nye tekst Cykler i den første stilling Biler kun.

➤ Til erstatning af de to første tilfælde af Biler med Cykler bruge følgende kode.

 Sub substitution_of_text_2() Dim full_txt_str, updated_str As String full_txt_str = "Hundred Cars Fifty Cars Ten Cars" updated_str = Replace(full_txt_str, "Cars", "Bicycles", 1, 2) MsgBox updated_str End Sub 

Her, 2 anvendes som tælletal til at erstatte de to første forekomster af Biler med Cykler .

Når du har kørt koden, vil du få en erstatning for de to første tekster Biler med Cykler .

➤ Anvend følgende kode til at erstatte alle forekomster af teksten Biler .

 Sub substitution_of_text_2() Dim full_txt_str, updated_str As String full_txt_str = "Hundred Cars Fifty Cars Ten Cars" updated_str = Replace(full_txt_str, "Cars", "Bicycles", 1, 3) MsgBox updated_str End Sub 

Her skal det sidste argument i REPLACE-funktion er 3 som er det tælletal, der angiver udskiftningen af alle de Biler med Cykler i tekststrengen.

➤ Tryk på F5 .

Herefter vil vi have følgende beskedboks med den erstattede tekst Cykler i strengen.

Lignende læsninger

  • Sådan erstatter du tekst med Carriage Return i Excel (4 glatte fremgangsmåder)
  • Excel VBA: Sådan finder og erstatter du tekst i et Word-dokument
  • Sådan erstatter du tekst efter et bestemt tegn i Excel (3 metoder)
  • Udskift tekst i en celle baseret på tilstand i Excel (5 nemme metoder)

Metode-03: Udskift tekst i en tilfældig streng med InputBox

Her vil vi erstatte en bestemt tekst i en tilfældig streng med en tekst, som defineres af en bruger ved hjælp af VBA InputBox-funktion .

Trin :

➤ Følg Step-01 Metode-1 .

➤ Indtast følgende kode.

 Sub substitution_af_tekst_3() Dim full_txt_str, new_txt, updated_str As String full_txt_str = "Hundred Cars Fifty Cars Ten Cars" new_txt = InputBox("Skriv den nye tekst, der skal erstattes") updated_str = Replace(full_txt_str, "Cars", new_txt) MsgBox updated_str End Sub 

Her har vi erklæret full_txt_str , new_txt , og updated_str som String og derefter tildelt full_txt_str til en tilfældig tekststreng- "Hundrede biler Halvtreds biler Halvtreds biler Ti biler" Hvis du vil have det brugerdefinerede input som den tekst, der skal erstattes med den Biler i den tilfældige streng, har vi brugt InputBox-funktion og derefter tildelt denne værdi til new_txt . Så er den REPLACE-funktion anvendes til at erstatte Biler del af denne tilfældige streng med new_txt Endelig har vi tildelt denne nye tekststreng til updated_str og med en meddelelsesboks ( MsgBox ) vil vi se resultatet.

➤ Tryk på F5 .

Herefter vil en Indtastningsboks vises, hvor du kan indtaste en tekstdel, som du ønsker at have i den nye streng.

➤ Type Cykler eller en hvilken som helst anden tekst, og tryk derefter på OK .

Til sidst vil du få følgende resultat med den nye tekststreng med ny tekst Cykler i stillingen som Biler .

Læs mere: Sådan erstatter du tekst i en Excel-formel (7 nemme måder at erstatte tekst på)

Metode-04: Udskift tekst i et område af strenge med Excel VBA

Her vil vi erstatte den gmail del af e-mail-id'erne med domænerne i Nyt domæne kolonnen, og for at samle de nye e-mail-id'er har vi indsat en ny kolonne; Endeligt e-mail-id .

Trin :

➤ Følg Step-01 Metode-1 .

➤ Indtast følgende kode.

 Sub substitution_af_tekst_4() For i = 4 To 13 If InStr(1, Cells(i, 4).Value, "gmail")> 0 Then Cells(i, 6).Value = Replace(Cells(i, 4).Value, "gmail", Cells(i, 5).Value) Else Cells(i, 6).Value = "" End If Next i End Sub 

Her har vi brugt den FOR-løkke for at udføre operationen fra Række 4 til Række 13 . Med hjælp fra IF-THEN har vi kontrolleret, om e-mail-id'erne for Kolonne D indeholder "gmail" eller ej, og for at opfylde dette kriterium skal "gmail" del af e-mail-id'erne erstattes med de nye domæner for Kolonne E til at oprette de nye id'er i Kolonne F Ellers vil du få et tomt felt i de tilsvarende celler i Kolonne F .

➤ Tryk på F5 .

Derefter vil du have de nye e-mail-id'er i Endeligt e-mail-id kolonne.

Læs mere: Excel VBA til at finde og erstatte tekst i en kolonne (2 eksempler)

Metode-05: Udskift tekst i et område af strenge med brugerindtastning for at finde tekst

Du kan erstatte følgende e-mail-id'er med de nye domæner og angive, hvad der skal erstattes i de tidligere id'er, og et brugerinput kan bruges ved at følge denne metode.

Trin :

➤ Følg Step-01 Metode-1 .

➤ Indtast følgende kode.

 Sub substitution_of_text_5() Dim partial_text As String partial_text = Application.InputBox("Indtast den streng, der skal erstattes") For i = 4 To 13 If InStr(1, Cells(i, 4).Value, LCase(partial_text))> 0 Then Cells(i, 6).Value = Replace(Cells(i, 4).Value, LCase(partial_text), Cells(i, 5).Value) Else Cells(i, 6).Value = "" End If Next i End Sub 

Her har vi defineret partial_text som en String og derefter tildelt den til en streng, som en bruger vil angive via Indtastningsboks .

Herefter brugte vi den FOR-løkke for at udføre operationen fra Række 4 til Række 13 , og ved hjælp af IF-THEN erklæring, kontrollerede vi, om e-mail-id'erne for Kolonne D indeholder "gmail" eller ej. Og for at opfylde dette kriterium skal "gmail" del af e-mail-id'erne erstattes med de nye domæner for Kolonne E til at oprette de nye id'er i Kolonne F Ellers vil du få et tomt felt i de tilsvarende celler i Kolonne F .

➤ Tryk på F5 .

Derefter vil du have en Indtastningsboks hvor du skal skrive den tekst, som du vil søge i rækken af e-mail-id'er (her har vi indtastet gmail ), og tryk derefter på OK .

Endelig har vi vores opdaterede e-mail-id'er i Endeligt e-mail-id kolonne.

Læs mere: Find og erstat en tekst i et område med Excel VBA (makro og brugerformular)

Øvelsesafsnit

For at du kan øve dig selv, har vi givet dig en Praksis afsnit som nedenfor i et ark med navnet Praksis . gør det venligst selv.

Konklusion

I denne artikel har vi forsøgt at dække de måder, hvorpå du kan erstatte tekst i en streng ved hjælp af Excel VBA Hvis du har forslag eller spørgsmål, er du velkommen til at dele dem i kommentarfeltet.

Hugh West er en meget erfaren Excel-træner og analytiker med over 10 års erfaring i branchen. Han har en bachelorgrad i regnskab og finans og en kandidatgrad i Business Administration. Hugh har en passion for undervisning og har udviklet en unik undervisningstilgang, der er nem at følge og forstå. Hans ekspertviden om Excel har hjulpet tusindvis af studerende og fagfolk verden over med at forbedre deres færdigheder og udmærke sig i deres karriere. Gennem sin blog deler Hugh sin viden med verden og tilbyder gratis Excel-tutorials og onlinetræning for at hjælpe enkeltpersoner og virksomheder med at nå deres fulde potentiale.