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”.
Зауважте, що цей макрос чутливий до регістру .
Тобто кожне входження «this» видаляється, але кожне входження «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”.
Зверніть увагу, що ця заміна не чутлива до регістру .
Тобто, кожне повторення слова “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: як підрахувати клітинки з певним текстом