Извлечение имейл адреси от една клетка, която съдържа друг текст
Решение: Проблемът може да бъде решен с помощта на макро или потребителска функция megaformuly.
Макросът се основава на VBA Сплит функция. Да приемем, че клетката съдържа текст Напиши [email protected] да резервирате семинар. Ако премине на текста за функцията на Сплит и уточни, че текстът трябва да бъде разделен на елементи, разделени с интервал - х = Split (cell.Value, "") - VBA връща масив, където всяка дума е елемент на масива. Фиг. 1 показва множество х Сплит след употреба функция.
Фиг. 1. Сплит функция връща масив, където всяка дума е елемент на масива
Изтеглете бележка в Word или PDF формат. примери в Excel (с VBA код)
Под getEmailMacro ()
Дим х Като вариант
Дим аз Като цяло число
Дим бележка Както стринга
За Всяка клетка В Selection
х = Split (cell.Value, "")
За I = 0 до UBound (х)
Ако х (и) като "*@*.*" Тогава
cell.Offset (0, 1) = х (I)
Изход За
Крайна сметка, ако
Следваща аз
Следваща клетка
End Sub
Код потребителски дефинирана функция:
Публична Функция getEmail (забележка Както стринга) Както стринга
Дим х Като вариант
Дим аз Като цяло число
х = Split (бележка, "")
За I = 0 до UBound (х)
Ако х (и) като "*@*.*" Тогава
getEmail = х (I)
Exit Function
Крайна сметка, ако
Следваща аз
Крайна Длъжност
Въпреки факта, че по следната формула ще отнеме известно време да пиша, че е изключително умен и изненадващо лесна за използване: = TRIM (MID (SUBSTITUTE ( "" А1; "" Повторение ( "", 20)); ТЪРСЕНЕ ( "@"; SUBSTITUTE ( "" А1; "" Повторение ( "", 20))) - 20; 40)). първи
Формулата първоначално е бил използван SUBSTITUTE функция на оригиналния текст, заменете всяко пространство в двадесет последователни пространства. Това ви позволява да се отделят всяка дума в текста на голям брой пропуски.
Оригинален текст: сега е моментът за [email protected] да си купи книга
Нов текст: сега е моментът за [email protected] да си купи книга
И накрая, функцията TRIM заменя четирите пространства в ред един, и премахва началните и крайните пространства, така че в крайна сметка ще получите това, което исках: [email protected] (фигура 4).