Как использовать замену в vba (с примером)
Вы можете использовать метод Substitute() в VBA, чтобы заменить все вхождения определенного текста в строке новым текстом.
Этот метод использует следующий базовый синтаксис:
Заменить (Текст, Старый_текст, Новый_текст, Номер_экземпляра)
Золото:
- Текст : текст, в котором вы хотите заменить символы.
- Old_text : Текст для замены.
- New_text : текст, который будет использоваться в качестве замены.
- Номер_экземпляра ( необязательно ) : какой экземпляр старого текста заменить. Если ничего не указано, заменяются все вхождения старого текста.
Следующие примеры показывают, как использовать этот метод на практике.
Пример: как использовать Substitute в VBA
Предположим, у нас есть следующий список выражений в Excel:
Предположим, вместо этого мы хотим заменить каждый пробел в каждой ячейке запятой.
Для этого мы можем создать следующий макрос:
Sub SubstituteText()
Dim rng As Range, cell As Range
Set rng = Range(" A2:A9 ")
For Each cell In rng
cell = WorksheetFunction.Substitute(cell, " ", ",")
Next
End Sub
Когда мы запускаем этот макрос, мы получаем следующий вывод:
Обратите внимание, что каждый пробел в каждой ячейке столбца A заменен запятой.
Обратите внимание, что мы также могли бы использовать следующий синтаксис, чтобы заменить каждый пробел ничем:
Sub SubstituteText()
Dim rng As Range, cell As Range
Set rng = Range(" A2:A9 ")
For Each cell In rng
cell = WorksheetFunction.Substitute(cell, " ", "")
Next
End Sub
Когда мы запускаем этот макрос, мы получаем следующий вывод:
Обратите внимание, что каждый пробел в каждой ячейке столбца A ничем не заменен.
Другими словами, мы удалили все пробелы из каждой ячейки столбца A.
Примечание . Полную документацию по методу VBA Substitute можно найти здесь .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи с помощью VBA:
VBA: как подсчитать вхождение символов в строку
VBA: как проверить, содержит ли строка другую строку
VBA: как подсчитать ячейки с определенным текстом