Заказать макрос
Разрабатываем макросы на заказ. Любой сложности. Быстро и качественно.
Подробнее...
Готовые решения » Надстройка VBA-Excel » Извлечь почту из ячейки

Извлечь почту функцией в Excel

Функция ПОЧТАИЗСТРОКИ поможет извлечь почту из ячейки. Не важно в какой части текста находится email, функция справится со своей задачей.

Описание функции

Иногда мне приходится извлекать почту из текста, при чем различного, в котором заранее не известно в какой части находится email.

Данную задачу я упростил созданием функции =ПОЧТАИЗСТРОКИ(ТЕКСТ; [СТАРТ]), она имеет 2 аргумента:

  • ТЕКСТ - текст или ссылка на ячейку из которой необходимо извлечь email.
  • [СТАРТ] - необязательный аргумент, указывающий с какого символа осуществлять поиск.

Разберем работу функции на примерах

Пример

Извлекаем почту из разных частей текста

Извлечь почту из ячейки excel

Код на VBA

Public Function ПОЧТАИЗСТРОКИ(ByVal ТЕКСТ As String, Optional ByVal СТАРТ As Long = 1) As String
    Dim ТЕКСТ1 As String, ТЕКСТ2 As String
    Dim Space1 As Long, Space2 As Long
    Dim DogPos As Long
    DogPos = InStr(СТАРТ, ТЕКСТ, "@")
    If DogPos = 0 Then ПОЧТАИЗСТРОКИ = "Почта не найдена": Exit Function
 
    ТЕКСТ1 = Left(ТЕКСТ, DogPos - 1)
    ТЕКСТ2 = Right(ТЕКСТ, Len(ТЕКСТ) - DogPos)
 
    ТЕКСТ1 = ИНВЕРСИЯ(ТЕКСТ1)
    Space1 = InStr(СТАРТ, ТЕКСТ1, " ")
    If Space1 > 0 Then ТЕКСТ1 = Left(ТЕКСТ1, Space1 - 1)
    ТЕКСТ1 = ИНВЕРСИЯ(ТЕКСТ1)
 
    Space2 = InStr(1, ТЕКСТ2, " ")
    If Space2 > 0 Then ТЕКСТ2 = Left(ТЕКСТ2, Space2 - 1)
 
    ПОЧТАИЗСТРОКИ = ТЕКСТ1 & "@" & ТЕКСТ2
End Function
Надстройка
VBA-Excel
Надстройка для Excel содержит большой набор полезных функций, с помощью которых вы значительно сократите время и увеличите скорость работы с программой.

Рекомендуем к прочтению

Комментарии:

comments powered by Disqus