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 = "Hundred Cars Fifty Cars Ten Cars" 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 = "Hundred Cars Fifty Cars Ten Cars" 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 = "Hundred Cars Fifty Cars Ten Cars" 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 = "Hundred Cars Fifty Cars Ten Cars" 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 = "Hundred Cars Fifty Cars Ten Cars" 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 = "Hundred Cars Fifty Cars Ten Cars" 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 = "Hundred Cars Fifty Cars Ten Cars" new_txt = InputBox("Write down new text to replace") updated_str = Replace(full_txt_str, "Cars", new_txt) MsgBox updated_str End Sub 

Здесь мы объявили full_txt_str , новый_текст и updated_str в качестве Строка и затем назначил full_txt_str в случайную текстовую строку - "Сто автомобилей Пятьдесят автомобилей Десять автомобилей" Чтобы пользовательский ввод стал текстом, который будет заменен на Автомобили в случайной строке, мы использовали Функция InputBox и затем присвоил это значение новый_текст . Тогда функция REPLACE используется для замены Автомобили часть этой случайной строки с новый_текст Наконец, мы назначили эту новую текстовую строку в 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" часть почтовых идентификаторов будет заменена новыми доменами Колонка 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 

Здесь мы определили частичный_текст как Строка и затем присвоил его строке, которая будет передана пользователем через Блок ввода .

После этого мы использовали цикл FOR для выполнения операции из Ряд 4 на Ряд 13 , и используя IF-THEN оператора, мы проверили, что идентификаторы электронной почты из Колонка D содержать "gmail" или нет. И для выполнения этого критерия необходимо "gmail" часть идентификаторов электронной почты будет заменена новыми доменами Колонка E для создания новых идентификаторов в Колонка F В противном случае у вас будет пустота в соответствующих ячейках Колонка F .

➤ Нажмите F5 .

После этого у вас будет Блок ввода где нужно ввести текст, который вы хотите искать в диапазоне почтовых идентификаторов (здесь мы ввели gmail ), а затем нажмите OK .

Наконец, мы получаем наши обновленные идентификаторы электронной почты в Окончательный адрес электронной почты колонна.

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

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

Для самостоятельного выполнения практики мы предоставили Практика раздел, как показано ниже, в листе с именем Практика Пожалуйста, сделайте это сами.

Заключение

В этой статье мы постарались рассказать о способах замены текста в строке с помощью Excel VBA Надеюсь, вы найдете его полезным. Если у вас есть предложения или вопросы, не стесняйтесь поделиться ими в разделе комментариев.

Хью Уэст — опытный тренер и аналитик Excel с более чем 10-летним опытом работы в отрасли. Он имеет степень бакалавра в области бухгалтерского учета и финансов и степень магистра делового администрирования. Хью страстно любит преподавать и разработал уникальный подход к обучению, которому легко следовать и который легко понять. Его экспертные знания Excel помогли тысячам студентов и специалистов по всему миру улучшить свои навыки и преуспеть в своей карьере. В своем блоге Хью делится своими знаниями со всем миром, предлагая бесплатные учебные пособия по Excel и онлайн-обучение, чтобы помочь отдельным лицам и компаниям полностью раскрыть свой потенциал.