Vba: як витягнути текст між двома символами


Ви можете створити таку настроювану функцію у VBA для вилучення тексту між двома певними символами:

 Function ExtractBetween(this_text, start_char, end_char)

StartPosition = InStr(this_text, start_char)
EndPosition = InStr(this_text, end_char)

ExtractBetween = Mid(this_text, StartPosition + 1, EndPosition - StartPosition - 1)

End Function

Потім ви можете використовувати цю функцію, щоб витягнути текст між двома певними символами в певний символ у Excel.

У наступному прикладі показано, як використовувати цю функцію на практиці.

Приклад: використання VBA для виділення тексту між двома символами

Припустимо, у нас є наступний набір даних в Excel, що містить значення ID і загальний обсяг продажів різних продуктів в компанії:

Припустімо, ми хочемо використовувати VBA, щоб витягти текст у дужках для кожної комірки в стовпці A та повернути результати в стовпець C.

Для цього ми можемо створити таку функцію:

 Function ExtractBetween(this_text, start_char, end_char)

StartPosition = InStr(this_text, start_char)
EndPosition = InStr(this_text, end_char)

ExtractBetween = Mid(this_text, StartPosition + 1, EndPosition - StartPosition - 1)

End Function

Потім ми можемо ввести таку формулу в клітинку C2 , щоб витягти текст у дужках для тексту в клітинці A2 :

 =ExtractBetween( A2 , "(", ")")

Потім ми можемо клацнути та перетягнути цю формулу до кожної клітинки, що залишилася в стовпці C:

VBA виділяє текст між двома певними символами

У стовпці C тепер відображається текст у дужках для кожної відповідної клітинки в стовпці A.

Примітка . Ця формула працює за допомогою функції Instr у VBA, щоб отримати позицію певних початкових і кінцевих символів, а потім за допомогою функції Mid , щоб повернути весь текст між цими двома символами.

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові завдання за допомогою VBA:

VBA: як підрахувати випадки появи символів у рядку
VBA: як перевірити, чи містить рядок інший рядок
VBA: як підрахувати клітинки з певним текстом

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *