Innehållsförteckning
Om du letar efter sätt att ersätta text i en sträng använda Excel VBA så kommer du att tycka att den här artikeln är användbar. Att ersätta en viss textdel kan spara mycket tid på att skriva in textsträngarna igen. Så låt oss gå in på huvudartikeln för att få veta detaljerna om denna ersättningsuppgift.
Ladda ner arbetsboken
Ersätt text i String.xlsm5 sätt att ersätta text i en sträng med Excel VBA
Här har vi följande dataset som innehåller några poster om de anställda med deras e-postadresser. Vår uppgift är att ersätta de gamla domännamnen med de nya. I följande metoder kommer vi att arbeta med detta dataset tillsammans med några slumpmässiga textsträngar för att ersätta önskad text med VBA koder.
Vi har använt oss av Microsoft Excel 365 versionen här, men du kan använda andra versioner när det passar dig.
Metod-01: Ersätt text från den n:e positionen i en slumpmässig sträng
Här ersätter vi text i en slumpmässig textsträng för olika startpositioner.
Step-01 :
➤ Gå till Utvecklare Fliken>> Kod Grupp>> Visual Basic Alternativ.
Därefter är det Redigerare för Visual Basic kommer att öppnas.
➤ Gå till Infoga Fliken>> Modul Alternativ.
Efter detta kommer en Modul kommer att skapas.
Step-02 :
➤ Skriv följande kod
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
Här har vi deklarerat full_txt_str och uppdaterad_str som Sträng och sedan tilldelas full_txt_str till en slumpmässig textsträng- "Hundra bilar Femtio bilar Tio bilar" . Då är det VBA Ersätt funktion används för att ersätta Bilar del av denna slumpmässiga sträng med Cyklar och 1 används här för att starta ersättningen från positionen 1 Slutligen har vi tilldelat denna nya textsträng till uppdaterad_str och med en meddelanderuta ( MsgBox ) kommer vi att se resultatet.
➤ Press F5 .
Då är en meddelanderuta kommer att visas med den nya textsträngen med den ersatta texten. Cyklar .
➤ För att göra utbytesprocessen från den andra instansen av Bilar använda följande kod.
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
Här har vi använt startpositionen som 14 eftersom vi vill ha den del av strängen som kommer efter Hundra bilar och ersätta den Bilar här.
➤ Efter körning koden, får vi följande meddelanderuta med den textsträng med utgångspunkt i texten Femtio och med Cyklar i positionen för Bilar .
➤ För att bara ha den sista delen av strängen använder vi följande kod.
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
Här har vi använt startpositionen som 25 eftersom vi vill ha den del av strängen som kommer efter Femtio bilar och ersätta den Bilar med Cyklar här.
Slutligen kommer vi att ha en meddelanderuta med vår önskade del av strängen som ersätts med Cyklar .
Läs mer: Excel VBA: Ersätt tecken i en sträng efter position (4 effektiva sätt)
Metod-02: Ersätt text för n:e förekomsten av en slumpmässig sträng med Excel VBA
I det här avsnittet kommer vi att ersätta en text i en slumpmässig sträng för olika antal förekomster med hjälp av en VBA kod.
Steg :
➤ Följ Step-01 på Metod-1 .
➤ Ange följande kod.
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
Här har vi deklarerat full_txt_str och uppdaterad_str som Sträng och sedan tilldelas full_txt_str till en slumpmässig textsträng- "Hundra bilar Femtio bilar Tio bilar" . Efter det kommer Ersätt funktion används för att ersätta Bilar del av denna slumpmässiga sträng med Cyklar , 1 används här för att starta ersättningen från positionen 1 av denna sträng, och den sista 1 är till för att räkna antalet förekomster. Genom att använda 1 som räkningsnummer definierar vi ersättningen av den första Bilar Slutligen har vi tilldelat denna nya textsträng till uppdaterad_str och med en meddelanderuta ( MsgBox ) kommer vi att se resultatet.
➤ Press F5 .
Efteråt kommer en meddelanderuta kommer att visas med den nya texten Cyklar i den första positionen på Bilar endast.
➤ För att ersätta de två första exemplen av Bilar med Cyklar använda följande kod.
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
Här, 2 används som räkningsnummer för att ersätta de två första exemplen av Bilar med Cyklar .
Efter att ha kört koden kommer du att ersätta de två första texterna. Bilar med Cyklar .
➤ Använd följande kod för att ersätta alla förekomster av texten Bilar .
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
Här är det sista argumentet i Ersätt funktion är 3 som är det räknevärde som anger att alla Bilar med Cyklar i textsträngen.
➤ Press F5 .
Därefter kommer vi att ha följande meddelanderuta med den ersatta texten Cyklar i strängen.
Liknande läsningar
- Hur man ersätter text med en vändning i Excel (4 smidiga metoder)
- Excel VBA: Hur man hittar och ersätter text i ett Word-dokument
- Hur man ersätter text efter ett visst tecken i Excel (3 metoder)
- Ersätt texten i en cell baserat på villkor i Excel (5 enkla metoder)
Metod-03: Ersätt text i en slumpmässig sträng med InputBox
Här kommer vi att ersätta en viss text i en slumpmässig sträng med en text som definieras av en användare med hjälp av VBA InputBox-funktion .
Steg :
➤ Följ Step-01 på Metod-1 .
➤ Ange följande kod.
Sub substitution_of_text_3() Dim full_txt_str, new_txt, updated_str As String full_txt_str = "Hundred Cars Fifty Cars Ten Cars" new_txt = InputBox("Skriv ner den nya texten som ska ersättas") updated_str = Replace(full_txt_str, "Cars", new_txt) MsgBox updated_str End Sub
Här har vi deklarerat full_txt_str , new_txt , och uppdaterad_str som Sträng och sedan tilldelas full_txt_str till en slumpmässig textsträng- "Hundra bilar Femtio bilar Tio bilar" För att ha den användardefinierade inmatningen som text som ska ersättas med den Bilar i den slumpmässiga strängen har vi använt InputBox-funktion och sedan tilldelas detta värde till new_txt . Då är det Ersätt funktion används för att ersätta Bilar del av denna slumpmässiga sträng med new_txt Slutligen har vi tilldelat denna nya textsträng till uppdaterad_str och med en meddelanderuta ( MsgBox ) kommer vi att se resultatet.
➤ Press F5 .
Efter detta kommer en Inmatningsruta visas där du kan skriva in den textdel som du vill ha i den nya strängen.
➤ Typ Cyklar eller någon annan text som du vill ha och tryck sedan på OK .
Slutligen får du följande resultat med den nya textsträngen med ny text Cyklar i positionen för Bilar .
Läs mer: Hur du ersätter text i Excel-formeln (7 enkla sätt)
Metod-04: Ersätt text i ett intervall av strängar med Excel VBA
Här ersätter vi gmail delen av e-post-id:erna med domänerna i Ny domän kolumnen, och för att samla in de nya e-post-ID:erna har vi lagt in en ny kolumn; Slutlig e-postadress .
Steg :
➤ Följ Step-01 på Metod-1 .
➤ Ange följande kod.
Sub substitution_of_text_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
Här har vi använt oss av FOR-slinga för att utföra åtgärden från Rad 4 till Rad 13 . Med hjälp av IF-THEN har vi kontrollerat om e-post-id:erna för Kolumn D innehåller "gmail" eller inte, och för att uppfylla detta kriterium ska "gmail" delen av e-post-ID:erna kommer att ersättas med de nya domänerna för Kolumn E för att skapa de nya id:erna i Kolumn F Annars kommer du att få ett tomt fält i motsvarande celler i Kolumn F .
➤ Press F5 .
Därefter kommer du att ha de nya e-post-ID:erna i Slutlig e-postadress kolumn.
Läs mer: Excel VBA för att hitta och ersätta text i en kolumn (2 exempel)
Metod-05: Ersätt text i ett intervall av strängar med användarinmatning för att hitta text
Du kan ersätta följande e-post-ID:er med de nya domänerna och ange vad som ska ersättas i de tidigare ID:erna.En användarinmatning kan användas med den här metoden.
Steg :
➤ Följ Step-01 på Metod-1 .
➤ Ange följande kod.
Sub substitution_of_text_5() Dim partial_text As String partial_text = Application.InputBox("Ange den sträng som ska ersättas") 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
Här har vi definierat partial_text som en Sträng och sedan tilldelat den till en sträng som användaren kommer att ange via Inmatningsruta .
Därefter använde vi FOR-slinga för att utföra åtgärden från Rad 4 till Rad 13 , och med hjälp av IF-THEN kontrollerade vi om e-post-id:erna för Kolumn D innehåller "gmail" eller inte. Och för att uppfylla detta kriterium måste "gmail" delen av e-post-ID:erna kommer att ersättas med de nya domänerna för Kolumn E för att skapa de nya id:erna i Kolumn F Annars kommer du att få ett tomt fält i motsvarande celler i Kolumn F .
➤ Press F5 .
Därefter får du en Inmatningsruta där du måste skriva in den text som du vill söka i intervallet av e-post-ID:er (här har vi skrivit in gmail ) och tryck sedan på OK .
Slutligen har vi våra uppdaterade e-post-ID:er i Slutlig e-postadress kolumn.
Läs mer: Hitta och ersätta en text i ett intervall med Excel VBA (makro och användarformulär)
Övningssektionen
För att du ska kunna öva på egen hand har vi tillhandahållit en Praktik som nedan i ett ark som heter Praktik . Gör det själv.
Slutsats
I den här artikeln har vi försökt täcka olika sätt att ersätta text i en sträng med hjälp av Excel. VBA Om du har några förslag eller frågor får du gärna dela med dig av dem i kommentarsfältet.