Excel VBA: як замінити текст у рядку (5 ефективних способів)

  • Поділитися Цим
Hugh West

Якщо ви шукаєте шляхи для заміна тексту в рядку за допомогою Excel VBA Заміна певної частини тексту може заощадити багато часу на повторному введенні текстових рядків. Отже, давайте зануримося в основну частину статті, щоб дізнатися подробиці про завдання заміни.

Завантажити Робочий зошит

Заміна тексту в файлі String.xlsm

5 способів заміни тексту в рядку засобами Excel VBA

У нас є наступний набір даних, що містить деякі записи про співробітників з їх електронними адресами. Наша задача - замінити старі доменні імена на нові. У наступних методах ми будемо працювати з цим набором даних разом з деякими випадковими текстовими рядками, щоб замінити потрібний текст на VBA коди.

Ми використовували Microsoft Excel 365 тут, ви можете використовувати будь-які інші версії відповідно до вашої зручності.

Метод-01: Замінити текст, починаючи з n-ї позиції випадкового рядка

Тут ми замінимо текст у випадковому текстовому рядку для різних початкових позицій.

Крок-01 :

➤ Перейдіть до розділу Розробник Вкладка>>; Код Група "А"; Visual Basic Варіант.

Після цього, на засіданні Редактор Visual Basic відкриється.

➤ Перейдіть до розділу Вставка Вкладка>>; Модуль Варіант.

Після цього було проведено Модуль буде створено.

Крок-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 .

А потім вікно повідомлення з'явиться новий текстовий рядок із заміненим текстом Велосипеди .

➤ Здійснити процес заміни з другого примірника Автомобілі використовуйте наступний код.

 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, "Машини", "Велосипеди", 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, "Машини", "Велосипеди", 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, "Машини", "Велосипеди", 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 .

Після цього було прийнято рішення про проведення Поле вводу де ви можете ввести будь-яку частину тексту, яку ви хочете мати в новому рядку.

Тип Велосипеди або будь-який інший текст, а потім натисніть ГАРАЗД. .

Нарешті, ви отримаєте наступний результат з новим текстовим рядком з новим текстом Велосипеди на посаді Автомобілі .

Детальніше: Як замінити текст у формулі 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 За допомогою ЯКЩО-ТО ми перевірили, чи були вказані електронні адреси Колонка D містити "gmail" чи ні, і за виконання цього критерію "gmail" частина ідентифікаторів електронної пошти буде замінена на нові домени Колонка E створити нові ідентифікатори в Колонка 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 та з використанням ЯКЩО-ТО ми перевірили, чи не збігаються електронні адреси Колонка D містити "gmail" А за виконання цього критерію і буде відповідати "gmail" частина ідентифікаторів електронної пошти буде замінена на нові домени Колонка Е створити нові ідентифікатори в Колонка F В іншому випадку у відповідних клітинках будуть пропуски Колонка F .

Натисніть F5 .

Після цього у вас буде Поле вводу де потрібно ввести текст, який потрібно шукати в діапазоні ідентифікаторів електронної пошти (тут ми ввели gmail ), а потім натисніть ГАРАЗД. .

Нарешті, ми маємо оновлені ідентифікатори електронної пошти в Остаточний ідентифікатор електронної пошти колонка.

Читати далі: Пошук і заміна тексту в діапазоні за допомогою Excel VBA (макрос і UserForm)

Практична секція

Для самостійного проходження практики ми надали Практика розділ, як показано нижче, на аркуші з назвою Практика Будь ласка, зробіть це самі.

Висновок

У даній статті ми постаралися розглянути способи заміни тексту в рядку засобами Excel VBA Сподіваємось, він буде для вас корисним. Якщо у вас є пропозиції чи запитання, будь ласка, діліться ними у коментарях.

Г’ю Вест — досвідчений тренер і аналітик Excel із понад 10-річним досвідом роботи в галузі. Він має ступінь бакалавра з бухгалтерського обліку та фінансів і ступінь магістра з ділового адміністрування. Г’ю має пристрасть до викладання та розробив унікальний підхід до викладання, який легко зрозуміти та дотримуватися. Його експертне знання Excel допомогло тисячам студентів і професіоналів у всьому світі вдосконалити свої навички та досягти успіху в кар’єрі. У своєму блозі Г’ю ділиться своїми знаннями зі світом, пропонуючи безкоштовні навчальні посібники з Excel та онлайн-навчання, щоб допомогти окремим особам і компаніям повністю розкрити свій потенціал.