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 z tohoto řetězce řetězec „Indie je rozvojová země a Indie v asijské zemi“, musíme slovo „Indie“ nahradit slovem „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. Například níže je řetězec výrazů - „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 slovo „Indie“ nahradit slovem „Bharath“.
  • (Start): Toto je volitelný parametr. Ve výše uvedeném řetězci (Expression) máme dvě slova „India“, takže z 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.
  • (Count): If the Find String appearing multiple times in Expression, then how many words we need to replace.

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

Jak nahradit text v řetězci pomocí 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ívejte 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 zadali výrazový řetězec, vyhledali řetězec a nahradili řetězec, dodáme funkci Replace pouze proměnnou.

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

Příklad č. 3

Assume you want to replace the word “India” only from the second position, then we need to use the Replace function parameter (“Start”). Look at the below code for your information.

Code:

Sub Replace_Example2() Dim NewString As String Dim MyString As String Dim FindString As String Dim ReplaceString As String MyString = "India is a developing country and India is the Asian Country" FindString = "India" ReplaceString = "Bharath" NewString = Replace(MyString, FindString, ReplaceString, Start:=34) MsgBox NewString End Sub

Only one extra thing we have added from the previous code is the “Start” parameter as 34. Now run the code and see the result.

Now we can see only string after the 34th character of the string with “India” replacing with “Bharath.”

Example #4

Now for an example, if we want to replace only the first occurrence of the word “India” with “Bharath,” then we need to use the (“Count”) parameter of the Replace function.

Below is the code for you.

Code:

Sub Replace_Example3() Dim NewString As String Dim MyString As String Dim FindString As String Dim ReplaceString As String MyString = "India is a developing country and India is the Asian Country" FindString = "India" ReplaceString = "Bharath" NewString = Replace(MyString, FindString, ReplaceString, Count:=1) MsgBox NewString End Sub

Run the code manually or through the F5 key and see the result.

As you can see above, it has replaced only the first occurrence of the word “India” to “Bharath,” and the second instance remains the same.

Things to Remember Here

  • 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.

Zajímavé články...