VBA Nahradit řetězec | Jak nahradit text v řetězci pomocí VBA?

Excel VBA Nahradit řetězec

Nahradit je jak funkce listu, tak funkce VBA. Tato funkce nám pomáhá nahradit konkrétní slovo z řetězce jiným řetězcem. Funguje podobně jako funkce Substitute ve VBA.

Při práci s hodnotami testovacích řetězců nebo textových dat je zřejmé něco nahradit nebo nahradit něčím jiným, spojit data dvou buněk do jednoho nebo rozdělit data jedné buňky na více věcí. To vše jsou běžné úkoly, které děláme každý den na našem pracovišti.

Jak tedy nahradíme jedno slovo v řetězci jiným slovem? Pokud je například řetězec „Indie je rozvojová země a Indie v asijské zemi“, musíme z tohoto řetězce nahradit slovo „Indie“ a změnit jej na „Bharath“.

To je možné pomocí funkce Nahradit. V tomto článku vám ukážeme, jak nahradit řetězce v kódování VBA.

Vyměňte funkci

  • Výraz: Toto není nic jiného než původní hodnota řetězce, ze které se snažíme něco nahradit něčím. Příklad níže je výrazový řetězec - „Indie je rozvojová země a Indie v asijské zemi“
  • Najít řetězec: Jaký je řetězec, který se snažíme nahradit. Například v řetězci Expression se snažíme nahradit slovo „India“.
  • Nahradit řetězec: Jaký je náhradní řetězec, kterým nahrazujeme řetězec Najít ? V tomto případě se tedy snažíme nahradit slovo „Indie“ slovem „Bharath“.
  • [Start]: Toto je volitelný parametr. Ve výše uvedeném řetězci (výraz) máme dvě slova „Indie“, takže od které pozice řetězce hledání musíme zahájit proces nahrazení. Například pokud řekneme 2, začne nahrazovat slovo „Indie“ od druhé pozice.
  • [Počet]: Pokud se řetězec Najít objeví vícekrát ve výrazu, kolik slov musíme nahradit.

Pokud se například slovo „Indie“ objeví 5krát a pokud zadáte počet jako 3, nahradí pouze první 3 slova „Indie“.

Jak nahradit text v řetězci pomocí VBA?

Tuto šablonu Excel pro nahrazení řetězce VBA si můžete stáhnout zde - šablonu Excel pro nahrazení řetězce VBA

Příklad č. 1

Nyní se pokusíme nahradit slovo „Indie“ slovem „Bharath“ z níže uvedené hodnoty řetězce.

"Indie je rozvojová země a Indie v asijské zemi"

Nejprve nyní spusťte proceduru makra aplikace Excel.

Kód:

 Sub Replace_Example () End Sub 

Definujte proměnnou VBA jako řetězec.

Kód:

 Sub Replace_Example () Dim NewString jako řetězec End Sub 

V této proměnné zobrazíme novou hodnotu řetězce po nahrazení slova „Indie“ slovem „Bharath“. U této proměnné otevřete funkci Nahradit.

Prvním argumentem této funkce je „Výraz“, tj. Ze kterého řetězce se snažíme slovo nahradit, proto zkopírujte a vložte řetězec „Indie je rozvojová země a Indie v asijské zemi“.

Dalším argumentem je „Najít řetězec“, tj. Které slovo musíme nahradit, tj. „Indie“.

Dalším argumentem je „Replace String“, tj. Kterým řetězcem musíme nahradit slovo „India“, tj. „Bharath“.

Dobře, od nynějška ignorujte zbývající argumenty. Nyní zobrazte výsledek v okně se zprávou.

Kód:

 Sub Replace_Example () Dim NewString As String NewString = Replace ("Indie je rozvojová země a Indie je asijská země", "Indie", "Bharath") MsgBox NewString End Sub 

Spustíme kód pomocí klávesy F5 nebo ručně a uvidíme nový výsledek řetězce.

Dobře, podívejme se na výše uvedený výsledek, kdekoli jsme měli slovo „Indie“, bylo nahrazeno slovem „Bharath“.

Příklad č. 2

Nyní uvidíme, jak použít stejný kód s proměnnými. Podívejte se na níže uvedený kód.

Kód:

 Sub Replace_Example1 () Dim NewString jako řetězec Dim MyString jako řetězec Dim FindString jako řetězec Dim ReplaceString jako řetězec MyString = "Indie je rozvojová země a Indie je asijská země" FindString = "Indie" ReplaceString = "Bharath" NewString = nahradit (MyString , FindString, ReplaceString) MsgBox NewString End Sub 

Ve výše uvedeném kódu jsem deklaroval další tři proměnné.

 Dim MyString jako řetězec Dim DimString jako řetězec Dim ReplaceString jako řetězec 

Pro tyto proměnné jsem přidělil hodnoty, místo toho, abychom dodávali řetězec výrazů, řetězec hledání a řetězec nahrazení , dodáme do funkce Replace pouze proměnnou.

Tento kód také poskytuje stejný výsledek, ale jediný rozdíl spočívá v tom, že jsme místo přímé dodávky hodnot do funkce použili proměnné.

Příklad č. 3

Předpokládejme, že chcete slovo „Indie“ nahradit pouze z druhé pozice, pak musíme použít parametr funkce Nahradit [„Start“]. Další informace najdete v níže uvedeném kódu.

Kód:

 Sub Replace_Example2 () Dim NewString As String Dim MyString As String Dim FindString As String Dim ReplaceString As String MyString = "Indie je rozvojová země a Indie je asijská země" FindString = "Indie" ReplaceString = "Bharath" NewString = Nahradit (MyString , FindString, ReplaceString, Start: = 34) MsgBox NewString End Sub 

Pouze jedna věc navíc, kterou jsme přidali z předchozího kódu, je parametr „Start“ jako 34. Nyní spusťte kód a podívejte se na výsledek.

Nyní můžeme vidět pouze řetězec za 34. znakem řetězce s nahrazením slova „Indie“ výrazem „Bharath“.

Příklad č. 4

Nyní například chceme-li nahradit pouze první výskyt slova „Indie“ slovem „Bharath“, musíme použít parametr [„Počet“] funkce Nahradit.

Níže je uveden kód pro vás.

Kód:

 Sub Replace_Example3 () Dim NewString jako řetězec Dim MyString jako řetězec Dim FindString jako řetězec Dim ReplaceString jako řetězec MyString = "Indie je rozvojová země a Indie je asijská země" FindString = "Indie" ReplaceString = "Bharath" NewString = nahradit (MyString , FindString, ReplaceString, Count: = 1) MsgBox NewString End Sub 

Spusťte kód ručně nebo pomocí klávesy F5 a podívejte se na výsledek.

Jak vidíte výše, nahradil pouze první výskyt slova „Indie“ slovem „Bharath“ a druhá instance zůstává stejná.

Na co si pamatovat zde

  • Replace je rodina řetězcových funkcí ve VBA.
  • Ve VBA nahradí funkce replace všechna dodaná slova nahrazeným řetězcem, pokud není zadán parametr count.
  • Počáteční parametr odstraní zadaný počet znaků a zobrazí zbývající výsledek.

$config[zx-auto] not found$config[zx-overlay] not found