Заменить строку VBA | Как заменить текст в строке с помощью VBA?

Заменить строку Excel VBA

Заменить - это как функция рабочего листа, так и функция VBA. Эта функция помогает нам заменить конкретное слово из строки на другую строку. Он работает аналогично функции замены в VBA.

Имея дело с тестовой строкой или значениями текстовых данных, очевидно, что заменить или заменить что-то другим, объединить данные двух ячеек в одну или разделить данные одной ячейки на несколько вещей. Это обычные задачи, которые мы выполняем изо дня в день на своем рабочем месте.

Итак, как мы заменим одно слово в строке другим словом? Например, если строка - «Индия - развивающаяся страна, а Индия - азиатская страна», в этой строке нам нужно заменить слово «Индия» на «Бхарат».

Это возможно с помощью функции замены. В этой статье мы покажем вам, как заменить строки в кодировке VBA.

Заменить функцию

  • Выражение: это не что иное, как исходное строковое значение, из которого мы пытаемся что-то чем-то заменить. В качестве примера ниже приведена строка выражения: «Индия - развивающаяся страна, а Индия - азиатская страна».
  • Найти строку: какую строку мы пытаемся заменить. Например, в строке Expression мы пытаемся заменить слово «Индия».
  • Заменить строку: Какой заменяющей строкой мы заменяем строку поиска ? Итак, в этом случае мы пытаемся заменить слово «Индия» на «Бхарат».
  • [Начало]: необязательный параметр. В приведенной выше строке (Выражение) у нас есть два слова «Индия», поэтому с какой позиции строки поиска нам нужно начать процесс замены. Например, если мы скажем 2, то слово «Индия» начнется со второй позиции и далее.
  • [Счетчик]: если строка поиска встречается в Expression несколько раз, то сколько слов нам нужно заменить.

Например, если слово «Индия» встречается 5 раз и если вы укажете счет как 3, то оно заменит только первые 3 слова «Индия».

Как заменить текст в строке с помощью VBA?

Вы можете скачать этот шаблон VBA Replace String Excel здесь - VBA Replace String Excel Template

Пример # 1

Теперь мы попробуем заменить слово «Индия» на «Бхарат» из строкового значения ниже.

«Индия - развивающаяся страна, а Индия - азиатская страна»

Сначала запустите процедуру макроса Excel.

Код:

 Sub Replace_Example () End Sub 

Определите переменную VBA как String.

Код:

 Sub Replace_Example () Dim NewString As String End Sub 

В этой переменной мы покажем новое строковое значение после замены слова «Индия» на «Бхарат». Для этой переменной откройте функцию замены.

Первый аргумент этой функции - «Выражение», то есть из какой строки мы пытаемся заменить слово, поэтому скопируйте и вставьте строку «Индия - развивающаяся страна, а Индия - азиатская страна».

Следующий аргумент - «Найти строку», то есть какое слово нам нужно заменить, например, «Индия».

Следующим аргументом является «Заменить строку», т.е. какой строкой нам нужно заменить слово «Индия», то есть «Бхарат».

Хорошо, на данный момент игнорируйте оставшиеся аргументы. Теперь покажите результат в окне сообщения.

Код:

 Sub Replace_Example () Dim NewString As String NewString = Replace («Индия - развивающаяся страна, а Индия - азиатская страна», «Индия», «Бхарат») MsgBox NewString End Sub 

Давайте запустим код с помощью клавиши F5 или вручную и увидим результат новой строки.

Хорошо, посмотрите на результат выше, где бы мы ни использовали слово «Индия», оно было заменено словом «Бхарат».

Пример # 2

Теперь посмотрим, как использовать тот же код с переменными. Посмотрите на приведенный ниже код.

Код:

 Sub Replace_Example1 () Dim NewString As String Dim MyString As String Dim FindString As String Dim ReplaceString As String MyString = "Индия - развивающаяся страна, а Индия - азиатская страна" FindString = "India" ReplaceString = "Bharath" NewString = Replace (MyString , FindString, ReplaceString) MsgBox NewString End Sub 

В приведенном выше коде я объявил еще три переменные.

 Dim MyString As String Dim FindString As String Dim ReplaceString As String 

Этим переменным я присвоил значения, вместо того, чтобы указывать строку выражения, строку поиска и строку замены, мы предоставим только переменную функции замены.

Этот код также дает тот же результат, но с той лишь разницей, что мы использовали переменные вместо прямой передачи значений функции.

Пример # 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” to “Bharath” then we need to use [“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 is a string function family in VBA.
  • In VBA, the replace function replaces all the supplied words with replaced string if the count parameter is not specified.
  • The start parameter will delete the number of characters supplied and show the remaining result.