Excel VBA: Как да замените текст в низ (5 ефективни начина)

  • Споделя Това
Hugh West

Ако търсите начини да заместване на текст в низ използване на Excel VBA , тогава тази статия ще ви бъде полезна. Замяната на определена част от текста може да спести много време при повторното въвеждане на текстовите низове. Така че, нека преминем към основната статия, за да научим подробности за тази задача за замяна.

Изтегляне на работна тетрадка

Замяна на текст в String.xlsm

5 начина за замяна на текст в низ с помощта на Excel VBA

Имаме следния набор от данни, съдържащ някои записи на служителите с техните идентификатори на електронна поща. Нашата задача е да заменим старите имена на домейни с новите. В следващите методи ще работим с този набор от данни заедно с някои случайни текстови низове, за да заменим желания текст с VBA кодове.

Използвали сме Microsoft Excel 365 версия тук, можете да използвате други версии според удобството си.

Метод-01: Замяна на текст, започващ от n-та позиция на случаен низ

Тук ще заменим текст в произволен текстов низ за различни начални позиции.

Стъпка-01 :

➤ Отидете в Разработчик Tab>> Код Група>> Visual Basic Възможност.

След това Редактор на Visual Basic ще се отвори.

➤ Отидете в Вмъкване на Tab>> Модул Възможност.

След това Модул ще бъдат създадени.

Стъпка-02 :

➤ Напишете следния код

 Sub substitution_of_text_1() Dim full_txt_str, updated_str As String full_txt_str = "Сто коли Петдесет коли Десет коли" updated_str = Replace(full_txt_str, "Cars", "Bicycles", 1) MsgBox updated_str End Sub 

Тук сме декларирали full_txt_str и updated_str като Редица и след това се присвоява full_txt_str на произволен текстов низ- "Сто автомобила Петдесет автомобила Десет автомобила" . Тогава VBA Функция REPLACE се използва, за да замени Автомобили част от този произволен низ с Велосипеди и 1 се използва тук, за да започне замяната от позиция 1 на този низ. Накрая зададохме този нов текстов низ към updated_str и с поле за съобщения ( MsgBox ) ще видим резултата.

➤ Преса F5 .

Тогава a поле за съобщение ще се появи новият текстов низ със заменения текст. Велосипеди .

➤ За да извършите процеса на замяна от втората инстанция на Автомобили използвайте следния код.

 Sub substitution_of_text_1() Dim full_txt_str, updated_str As String full_txt_str = "Сто коли Петдесет коли Десет коли" updated_str = Replace(full_txt_str, "Cars", "Bicycles", 14) MsgBox updated_str End Sub 

Тук използвахме началната позиция като 14 защото искаме да имаме частта от символния низ след Сто автомобила и заменете Автомобили тук.

➤ След работи кода, ще имаме следното поле за съобщение с текстов низ като се започне от текста Петдесет и с Велосипеди в позицията на Автомобили .

➤ За да разполагаме само с последната част от този низ, прилагаме следния код.

 Sub substitution_of_text_1() Dim full_txt_str, updated_str As String full_txt_str = "Сто коли Петдесет коли Десет коли" updated_str = Replace(full_txt_str, "Cars", "Bicycles", 25) MsgBox updated_str End Sub 

Тук използвахме началната позиция като 25 защото искаме да имаме частта от символния низ след Петдесет автомобила и заменете Автомобили с Велосипеди тук.

Накрая ще имаме поле за съобщение като желаната от нас част от символния низ се заменя с Велосипеди .

Прочетете още: Excel VBA: Замяна на символ в низ по позиция (4 ефективни начина)

Метод-02: Замяна на текст за n-тото появяване на случаен низ с помощта на Excel VBA

В този раздел ще заменим даден текст в произволен низ за различен брой срещания с помощта на VBA код.

Стъпки :

➤ Следвайте Стъпка-01 на Метод-1 .

➤ Въведете следния код.

 Sub substitution_of_text_2() Dim full_txt_str, updated_str As String full_txt_str = "Сто коли Петдесет коли Десет коли" updated_str = Replace(full_txt_str, "Cars", "Bicycles", 1, 1) MsgBox updated_str End Sub 

Тук сме декларирали full_txt_str и updated_str като Редица и след това се присвоява full_txt_str на произволен текстов низ- "Сто автомобила Петдесет автомобила Десет автомобила" . След това Функция REPLACE се използва, за да замени Автомобили част от този произволен низ с Велосипеди , 1 се използва тук, за да започне замяната от позиция 1 на този низ и крайното 1 е за преброяване на броя на появяванията. 1 като число за броене определяме замяната на първия Автомобили Накрая зададохме този нов текстов низ към updated_str и с поле за съобщения ( MsgBox ) ще видим резултата.

➤ Преса F5 .

След това поле за съобщение ще се появи новият текст Велосипеди в първа позиция на Автомобили само.

➤ За замяна на първите два случая на Автомобили с Велосипеди използвайте следния код.

 Sub substitution_of_text_2() Dim full_txt_str, updated_str As String full_txt_str = "Сто коли Петдесет коли Десет коли" updated_str = Replace(full_txt_str, "Cars", "Bicycles", 1, 2) MsgBox updated_str End Sub 

Тук, 2 се използва като число за броене, за да замени първите два случая на Автомобили с Велосипеди .

След като стартирате кода, ще получите замяна на първите два текста Автомобили с Велосипеди .

➤ Приложете следния код, за да замените всички случаи на текста Автомобили .

 Sub substitution_of_text_2() Dim full_txt_str, updated_str As String full_txt_str = "Сто коли Петдесет коли Десет коли" updated_str = Replace(full_txt_str, "Cars", "Bicycles", 1, 3) MsgBox updated_str End Sub 

Тук последният аргумент на Функция REPLACE е 3 което е числото за преброяване, показващо замяната на всички Автомобили с Велосипеди в текстовия низ.

➤ Преса F5 .

След това ще имаме следното поле за съобщение със заменения текст Велосипеди в низа.

Подобни четива

  • Как да заменим текста с връщане на карета в Excel (4 гладки подхода)
  • Excel VBA: Как да намерите и замените текст в документ на Word
  • Как да замените текст след определен символ в Excel (3 метода)
  • Замяна на текста на клетка въз основа на условие в Excel (5 лесни метода)

Метод-03: Замяна на текст в случаен низ с InputBox

Тук ще заменим определен текст от произволен низ с текст, който ще бъде определен от потребителя с помощта на Функция VBA InputBox .

Стъпки :

➤ Следвайте Стъпка-01 на Метод-1 .

➤ Въведете следния код.

 Sub substitution_of_text_3() Dim full_txt_str, new_txt, updated_str As String full_txt_str = "Сто коли Петдесет коли Десет коли" new_txt = InputBox("Запишете новия текст за замяна") updated_str = Replace(full_txt_str, "Cars", new_txt) MsgBox updated_str End Sub 

Тук сме декларирали full_txt_str , new_txt , и updated_str като Редица и след това се присвоява full_txt_str на произволен текстов низ- "Сто автомобила Петдесет автомобила Десет автомобила" . За да може дефинираният от потребителя вход да бъде текстът, който ще бъде заменен с Автомобили в случайния низ, използвахме Функция InputBox и след това присвоява тази стойност на new_txt . Тогава Функция REPLACE се използва, за да замени Автомобили част от този произволен низ с new_txt . Накрая зададохме този нов текстов низ към updated_str и с поле за съобщения ( MsgBox ) ще видим резултата.

➤ Преса F5 .

След това Поле за въвеждане ще се появи страница, в която можете да въведете всяка текстова част, която искате да бъде включена в новия низ.

➤ Тип Велосипеди или друг текст, който искате, и след това натиснете OK .

Накрая ще получите следния резултат, като новият текстов низ ще има нов текст Велосипеди в позицията на Автомобили .

Прочетете още: Как да замените текст във формула на Excel (7 лесни начина)

Метод-04: Замяна на текст в диапазон от низове с Excel VBA

Тук ще заменим символа gmail частта от имейл идентификаторите с домейните в Нов домейн и за натрупване на новите идентификатори на имейли вмъкнахме нова колона; Окончателен идентификатор на електронна поща .

Стъпки :

➤ Следвайте Стъпка-01 на Метод-1 .

➤ Въведете следния код.

 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 

Тук използвахме Цикъл FOR за изпълнение на операцията от Ред 4 към Ред 13 . С помощта на IF-THEN проверихме дали имейл идентификаторите на Колона D съдържат "gmail" или не, и за изпълнението на този критерий "gmail" частта от имейл идентификаторите ще бъде заменена с новите домейни на Колона Е за създаване на новите идентификатори в Колона F . В противен случай ще имате празно място в съответните клетки на Колона F .

➤ Преса F5 .

След това ще имате новите имейл идентификатори в Окончателен идентификатор на електронна поща колона.

Прочетете още: Excel VBA за намиране и заместване на текст в колона (2 примера)

Метод-05: Замяна на текст в диапазон от низове с въвеждане от потребителя за намиране на текст

Можете да замените следните идентификатори на имейли с новите домейни и да декларирате какво да замените в предишните идентификатори Може да се използва потребителски вход, като следвате този метод.

Стъпки :

➤ Следвайте Стъпка-01 на Метод-1 .

➤ Въведете следния код.

 Sub substitution_of_text_5() Dim partial_text As String partial_text = Application.InputBox("Въведете низ, който да бъде заменен") 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 

Тук сме дефинирали partial_text като Редица и след това го присвои на низ, който ще бъде зададен от потребителя чрез Поле за въвеждане .

След това използвахме Цикъл FOR за изпълнение на операцията от Ред 4 към Ред 13 и с помощта на IF-THEN проверихме дали имейл идентификаторите на Колона D съдържат "gmail" или не. И за изпълнението на този критерий "gmail" частта от имейл идентификаторите ще бъде заменена с новите домейни на Колона Е за създаване на новите идентификатори в Колона F . В противен случай ще имате празно място в съответните клетки на Колона F .

➤ Преса F5 .

След това ще имате Поле за въвеждане където трябва да въведете текста, който искате да търсите в обхвата на имейл идентификаторите (тук сме въвели gmail ) и след това натиснете OK .

И накрая, актуализираните ни имейл идентификатори се намират в Окончателен идентификатор на електронна поща колона.

Прочетете още: Намиране и заместване на текст в диапазон с Excel VBA (макрос и потребителска форма)

Практически раздел

За да практикувате сами, сме предоставили Практика раздел, както е показано по-долу, в лист с име Практика . Моля, направете го сами.

Заключение

В тази статия се опитахме да разгледаме начините за заместване на текст в низ с помощта на Excel. VBA . надявам се, че ще ви бъде полезно. Ако имате предложения или въпроси, не се колебайте да ги споделите в раздела за коментари.

Хю Уест е опитен обучител и анализатор на Excel с над 10 години опит в индустрията. Има бакалавърска степен по счетоводство и финанси и магистърска степен по бизнес администрация. Хю има страст към преподаването и е разработил уникален подход на преподаване, който е лесен за следване и разбиране. Неговите експертни познания по Excel са помогнали на хиляди студенти и професионалисти по целия свят да подобрят уменията си и да постигнат отлични резултати в кариерата си. Чрез своя блог Хю споделя знанията си със света, като предлага безплатни уроци за Excel и онлайн обучение, за да помогне на хората и фирмите да достигнат пълния си потенциал.