Excel VBA: Jak nahradit text v řetězci (5 efektivních způsobů)

  • Sdílet Toto
Hugh West

Pokud hledáte způsoby, jak nahradit text v řetězci pomocí aplikace Excel VBA , pak pro vás bude tento článek užitečný. Nahrazení určité části textu může ušetřit spoustu času při opětovném psaní textových řetězců. Pojďme se tedy začíst do hlavního článku, abychom se dozvěděli podrobnosti o této úloze nahrazení.

Stáhnout pracovní sešit

Nahrazení textu v souboru String.xlsm

5 způsobů nahrazení textu v řetězci pomocí aplikace Excel VBA

Zde máme k dispozici následující datový soubor, který obsahuje několik záznamů o zaměstnancích s jejich e-mailovými identifikátory. Naším úkolem je nahradit stará doménová jména novými. V následujících metodách budeme pracovat s tímto datovým souborem spolu s několika náhodnými textovými řetězci, kterými nahradíme požadovaný text. VBA kódy.

Použili jsme Microsoft Excel 365 zde, můžete použít jakoukoli jinou verzi podle toho, jak vám to vyhovuje.

Metoda-01: Nahrazení textu od n-té pozice náhodného řetězce

Zde nahradíme text v náhodném textovém řetězci pro různé počáteční pozice.

Krok-01 :

➤ Přejděte na Vývojář Karta>> Kód Skupina>> Visual Basic Možnost.

Poté se Editor jazyka Visual Basic se otevře.

➤ Přejděte na Vložte Karta>> Modul Možnost.

Poté se Modul bude vytvořen.

Krok-02 :

➤ Napište následující kód

 Sub substitution_of_text_1() Dim full_txt_str, updated_str As String full_txt_str = "Sto aut Padesát aut Deset aut" updated_str = Replace(full_txt_str, "Cars", "Bicycles", 1) MsgBox updated_str End Sub 

Zde jsme prohlásili. full_txt_str a updated_str jako Řetězec a poté přiřadil full_txt_str na náhodný textový řetězec- "Sto aut Padesát aut Deset aut" . Pak VBA Funkce REPLACE se používá k nahrazení Automobily část tohoto náhodného řetězce s Jízdní kola a 1 se zde používá k zahájení nahrazování z pozice 1 tohoto řetězce. Nakonec jsme tento nový textový řetězec přiřadili do pole updated_str a s polem pro zprávy ( MsgBox ) uvidíme výsledek.

➤ Tisk F5 .

Pak a pole pro zprávy se zobrazí nový textový řetězec s nahrazeným textem. Jízdní kola .

➤ Chcete-li provést proces nahrazení od druhé instance Automobily použijte následující kód.

 Sub substitution_of_text_1() Dim full_txt_str, updated_str As String full_txt_str = "Sto aut Padesát aut Deset aut" updated_str = Replace(full_txt_str, "Cars", "Bicycles", 14) MsgBox updated_str End Sub 

Zde jsme použili výchozí pozici jako 14 protože chceme, aby část řetězce po Sto automobilů a nahradit Automobily zde.

➤ Po běh kód, budeme mít následující pole pro zprávy s textový řetězec vycházející z textu Padesát a s Jízdní kola v pozici Automobily .

➤ Pro zobrazení pouze poslední části tohoto řetězce použijeme následující kód.

 Sub substitution_of_text_1() Dim full_txt_str, updated_str As String full_txt_str = "Sto aut Padesát aut Deset aut" updated_str = Replace(full_txt_str, "Cars", "Bicycles", 25) MsgBox updated_str End Sub 

Zde jsme použili výchozí pozici jako 25 protože chceme, aby část řetězce po Padesát aut a nahradit Automobily s Jízdní kola zde.

Nakonec budeme mít pole pro zprávy s naší požadovanou částí řetězce, která bude nahrazena pomocí Jízdní kola .

Další informace: Excel VBA: Nahrazení znaku v řetězci podle pozice (4 účinné způsoby)

Metoda-02: Náhrada textu za n-tý výskyt náhodného řetězce pomocí Excel VBA

V této části budeme nahrazovat text v náhodném řetězci pro různé počty výskytů s pomocí VBA kód.

Kroky :

➤ Sledovat Krok-01 z Metoda-1 .

➤ Zadejte následující kód.

 Sub substitution_of_text_2() Dim full_txt_str, updated_str As String full_txt_str = "Sto aut Padesát aut Deset aut" updated_str = Replace(full_txt_str, "Cars", "Bicycles", 1, 1) MsgBox updated_str End Sub 

Zde jsme prohlásili. full_txt_str a updated_str jako Řetězec a poté přiřadil full_txt_str na náhodný textový řetězec- "Sto aut Padesát aut Deset aut" . Poté se Funkce REPLACE se používá k nahrazení Automobily část tohoto náhodného řetězce s Jízdní kola , 1 se zde používá k zahájení nahrazování z pozice 1 tohoto řetězce a konečný 1 slouží k počítání počtu výskytů. Pomocí funkce 1 jako počítací číslo definujeme náhradu prvního Automobily Nakonec jsme tento nový textový řetězec přiřadili do pole updated_str a s polem pro zprávy ( MsgBox ) uvidíme výsledek.

➤ Tisk F5 .

Poté se pole pro zprávy se zobrazí nový text Jízdní kola v první pozice z Automobily pouze.

➤ Pro nahrazení prvních dvou případů Automobily s Jízdní kola použijte následující kód.

 Sub substitution_of_text_2() Dim full_txt_str, updated_str As String full_txt_str = "Sto aut Padesát aut Deset aut" updated_str = Replace(full_txt_str, "Cars", "Bicycles", 1, 2) MsgBox updated_str End Sub 

Zde, 2 se použije jako počítací číslo, které nahradí první dva případy slova Automobily s Jízdní kola .

Po spuštění kódu se zobrazí náhrada prvních dvou textů. Automobily s Jízdní kola .

➤ Použijte následující kód pro nahrazení všech výskytů textu Automobily .

 Sub substitution_of_text_2() Dim full_txt_str, updated_str As String full_txt_str = "Sto aut Padesát aut Deset aut" updated_str = Replace(full_txt_str, "Cars", "Bicycles", 1, 3) MsgBox updated_str End Sub 

Zde je posledním argumentem Funkce REPLACE je 3 což je počítací číslo, které označuje nahrazení všech Automobily s Jízdní kola v textovém řetězci.

➤ Tisk F5 .

Poté se uskuteční následující akce pole pro zprávy s nahrazeným textem Jízdní kola v řetězci.

Podobná čtení

  • Jak nahradit text s návratem vozíku v aplikaci Excel (4 hladké přístupy)
  • Excel VBA: Jak najít a nahradit text v dokumentu aplikace Word
  • Jak nahradit text za určitým znakem v aplikaci Excel (3 metody)
  • Nahrazení textu buňky na základě podmínky v aplikaci Excel (5 snadných metod)

Metoda-03: Nahrazení textu v náhodném řetězci pomocí pole InputBox

Zde nahradíme určitý text náhodného řetězce textem, který definuje uživatel pomocí příkazu Funkce VBA InputBox .

Kroky :

➤ Sledovat Krok-01 z Metoda-1 .

➤ Zadejte následující kód.

 Sub substitution_of_text_3() Dim full_txt_str, new_txt, updated_str As String full_txt_str = "Sto aut Padesát aut Deset aut" new_txt = InputBox("Zapište nový text, který chcete nahradit") updated_str = Replace(full_txt_str, "Cars", new_txt) MsgBox updated_str End Sub 

Zde jsme prohlásili. full_txt_str , new_txt a updated_str jako Řetězec a poté přiřadil full_txt_str na náhodný textový řetězec- "Sto aut Padesát aut Deset aut" . Chcete-li, aby byl uživatelem definovaný vstup nahrazen textem. Automobily v náhodném řetězci jsme použili Funkce InputBox a poté tuto hodnotu přiřadil new_txt . Pak Funkce REPLACE se používá k nahrazení Automobily část tohoto náhodného řetězce s new_txt . Nakonec jsme tento nový textový řetězec přiřadili do položky updated_str a s polem pro zprávy ( MsgBox ) uvidíme výsledek.

➤ Tisk F5 .

Poté se Vstupní pole se zobrazí okno, do kterého můžete zadat libovolnou část textu, kterou chcete mít v novém řetězci.

➤ Typ Jízdní kola nebo jakýkoli jiný text a pak stiskněte OK .

Nakonec získáte následující výsledek s novým textovým řetězcem s novým textem Jízdní kola v pozici Automobily .

Další informace: Jak nahradit text ve vzorci aplikace Excel (7 snadných způsobů)

Metoda-04: Nahrazení textu v rozsahu řetězců pomocí aplikace Excel VBA

Zde nahradíme gmail část e-mailových id s doménami v adresáři Nová doména a pro shromažďování nových e-mailových ID jsme vložili nový sloupec; Konečné e-mailové ID .

Kroky :

➤ Sledovat Krok-01 z Metoda-1 .

➤ Zadejte následující kód.

 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 

Zde jsme použili Smyčka FOR provést operaci z Řada 4 na Řada 13 S pomocí IF-THEN jsme zkontrolovali, zda e-mailové id. Sloupec D obsahují "gmail" nebo ne, a pro splnění tohoto kritéria je nutné použít "gmail" část e-mailových ID bude nahrazena novými doménami Sloupec E k vytvoření nových id v Sloupec F . V opačném případě budou příslušné buňky prázdné. Sloupec F .

➤ Tisk F5 .

Poté budete mít nové e-mailové adresy v adresáři Konečné e-mailové ID sloupec.

Další informace: Vyhledání a nahrazení textu ve sloupci v aplikaci Excel VBA (2 příklady)

Metoda-05: Nahrazení textu v rozsahu řetězců pomocí uživatelského vstupu pro vyhledání textu

Následující e-mailová ID můžete nahradit novými doménami a deklarovat, co se má nahradit v předchozích ID, které lze zadat pomocí této metody.

Kroky :

➤ Sledovat Krok-01 z Metoda-1 .

➤ Zadejte následující kód.

 Sub substitution_of_text_5() Dim partial_text As String partial_text = Application.InputBox("Zadejte řetězec, který má být nahrazen") 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 

Zde jsme definovali partial_text jako Řetězec a poté jej přiřadil řetězci, který uživatel zadá prostřednictvím příkazu Vstupní pole .

Poté jsme použili Smyčka FOR provést operaci z Řada 4 na Řada 13 a pomocí IF-THEN jsme zkontrolovali, zda e-mailové id Sloupec D obsahují "gmail" nebo ne. A pro splnění tohoto kritéria je třeba "gmail" část e-mailových ID bude nahrazena novými doménami Sloupec E k vytvoření nových id v Sloupec F . V opačném případě budou příslušné buňky prázdné. Sloupec F .

➤ Tisk F5 .

Poté budete mít k dispozici Vstupní pole kde musíte zadat text, který chcete vyhledat v rozsahu e-mailových id (zde jsme zadali gmail ) a poté stiskněte OK .

Nakonec máme naše aktualizované e-mailové ID v adresáři Konečné e-mailové ID sloupec.

Další informace: Vyhledání a nahrazení textu v rozsahu pomocí aplikace Excel VBA (makro a uživatelský formulář)

Praktická část

Pro samostatné cvičení jsme připravili Cvičení sekce jako níže v listu s názvem Cvičení . Udělejte to prosím sami.

Závěr

V tomto článku jsme se pokusili popsat způsoby nahrazování textu v řetězci pomocí aplikace Excel. VBA . Doufám, že pro vás bude užitečný. Pokud máte nějaké návrhy nebo dotazy, neváhejte se o ně podělit v sekci komentářů.

Hugh West je velmi zkušený školitel a analytik Excelu s více než 10 lety zkušeností v oboru. Má bakalářský titul v oboru Účetnictví a finance a magisterský titul v oboru Business Administration. Hugh má vášeň pro výuku a vyvinul jedinečný přístup k výuce, který lze snadno sledovat a pochopit. Jeho odborné znalosti Excelu pomohly tisícům studentů a profesionálů po celém světě zlepšit své dovednosti a vyniknout ve své kariéře. Prostřednictvím svého blogu Hugh sdílí své znalosti se světem a nabízí bezplatné výukové programy Excelu a online školení, které jednotlivcům a firmám pomohou dosáhnout jejich plného potenciálu.