Vba: как удалить символы из строки


Вы можете использовать метод replace() в VBA для удаления символов из строки.

В следующих примерах показано, как использовать этот метод на практике со следующим списком строк в Excel:

Пример 1. Используйте VBA для удаления всех вхождений символов в строке (с учетом регистра).

Допустим, мы хотим удалить «это» из каждой строки.

Для этого мы можем создать следующий макрос:

 Sub RemoveChar()
Dim i As Integer

For i = 2 To 8
    Range(" B " & i) = Replace(Range(" A " & i), " this ", "")
Next i
End Sub

Когда мы запускаем этот макрос, мы получаем следующий вывод:

В столбце B отображаются все строки столбца A, при этом каждое вхождение слова «this» удалено.

Обратите внимание, что этот макрос чувствителен к регистру .

То есть каждое появление слова «это» удаляется, но каждое появление слова «это» остается в покое.

Пример 2. Используйте VBA для удаления всех вхождений символов в строке (без учета регистра).

Допустим, мы хотим удалить «это» (независимо от регистра) из каждой строки.

Для этого мы можем создать следующий макрос:

 SubRemoveChar ()
Dim i As Integer

For i = 2 To 8
    Range(" B " & i) = Replace(LCase(Range(" A " & i)), " this ", "")
Next i
End Sub

Когда мы запускаем этот макрос, мы получаем следующий вывод:

В столбце B отображаются все строки столбца A, при этом каждое вхождение слова «this» удалено.

Обратите внимание, что эта замена не чувствительна к регистру .

То есть каждое появление слова «это» (с заглавной буквы или нет) удаляется.

Нам удалось добиться этого, используя метод LCase , который сначала преобразует каждую строку в столбце A в нижний регистр, а затем ищет «это» в каждой строке.

Пример 3. Используйте VBA для удаления первых N вхождений символов в строке.

Допустим, мы хотим удалить из каждой строки только первое вхождение «this» (независимо от регистра).

Для этого мы можем создать следующий макрос:

 SubRemoveChar ()
Dim i As Integer

For i = 2 To 8
    Range(" B " & i) = Replace(LCase(Range(" A " & i)), " this ", "", Count:=1)
Next i
End Sub

Когда мы запускаем этот макрос, мы получаем следующий вывод:

Столбец B отображает каждую строку в столбце A, удаляя только первое вхождение слова «this».

Обратите внимание, что мы использовали Count:=1 для удаления только первого вхождения определенной строки, но вы можете заменить 1 любым значением, которое хотите удалить, вместо первых n вхождений определенной строки.

Примечание . Полную документацию по методу замены VBA можно найти здесь .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи с помощью VBA:

VBA: как подсчитать вхождение символов в строку
VBA: как проверить, содержит ли строка другую строку
VBA: как подсчитать ячейки с определенным текстом

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *