Вилучення декількох адрес електронної пошти з файлу excel / excel


0

Чи є спосіб вилучити кілька адрес електронної пошти з файлу excel / excel

    |   A   |   B                                                                  
----|-------------
1   |HTML   |
    |Content|
    |   1   |
----|-------|-----
2   |HTML   |
    |Content|
    |   2   |
----|-------|-----
N Rows|     |

Більш-менш вміст однаковий у стовпцях

HTML-вміст у стовпці один рядок перший


cid=9498&peid= **xyz9000@gmail.com** &mbrid=cf7cc75d395cbf901f73967b1267db42 style="text-decoration: none;  color: blue;">Update</a> contact/membership info.<font style="font-size:14px" face="Verdana" color="#000000">&nbsp;&nbsp;|&nbsp;&nbsp;<font style="font-size:12px" face="Verdana" color="#3c3c3c"><a href=https:///fe_web_member_subscription_verify.php?oeid= 
**navee@centra.com**&cid=9498 style="text-decoration: none;  color: blue;">Subscribe</a> to receive requirements & resumes
                                                                    </font>        
                                                            </p>
                                                       </td>
                                            </tr>

                              <tr>
                                                   <td colspan="2"  valign="middle">
                                                            <p style="margin-left:0px;margin-right:0px;margin-top:0px; margin-bottom:0px;"> 
                                                                    <font style="font-size:15px" color="#3C3C3C" face="Verdana" >
                                        <br><u>From</u>:<br>
                                               Navee ,<br>
                                               Centra<br>                                            
                                                                           qwerty@centra.com<br>
                                                                           <span style="background-color: #FFFF00"><b>Reply to:</b></span> &nbsp;&nbsp;navee@centra.com<br><br>

                                                                    </font>        
                                                            </p>
                                                  </td>
                                            </tr>  

                                                  <tr>
                                                    <td  colspan="2" valign="middle">
                                                            <br><p><strong>Big 

HTML-вміст у стовпці один рядок другий


cid=9498&peid= **xyz9000@gmail.com** &mbrid=cf7cc75d395cbf901f73967b1267db42 style="text-decoration: none;  color: blue;">Update</a> contact/membership info.<font style="font-size:14px" face="Verdana" color="#000000">&nbsp;&nbsp;|&nbsp;&nbsp;<font style="font-size:12px" face="Verdana" color="#3c3c3c"><a href=https:///fe_web_member_subscription_verify.php?oeid= 
**navee@centra.com**&cid=9498

Я спробував використовувати онлайн-інструменти, доступні в Інтернеті, але вони не дають змоги / вони отримують лише першу доступну адресу електронної пошти у полі excel.

https://www.extendoffice.com/product/kutools-for-excel/excel-extract-email-address-from-string.html

Існує n кількість рядків.

Чи є спосіб отримати кілька електронних адрес із комірки Excel

Необхідний вихід - витягніть електронні листи та збережіть їх в окремому розкладному аркуші або в сусідньому стовпчику

==========================


Формат введення 3

#

Для наступного HTML-коду, присутнього в комірці excel, я можу отримати лише перше виникнення електронної пошти, яку я отримав, але не всі вказані декілька адрес електронної пошти.

            <p align="center"  style="margin-left:0px;margin-top:30px; margin-right:0px;margin-bottom:25px;">
                <table width="1024" cellspacing="0" cellpadding="0"  border="0" >
                        <tr>
                        <td colspan="2"  style="border-bottom: solid 1px #ff7373; " valign="bottom">
                            <p style="margin-left:0px;margin-right:0px;margin-top:0px; margin-bottom:0px;"> 
                                <font style="font-size:12px" color="#3C3C3C" face="Verdana" >
                                    <a href=https://house.com/powerhouse/fe_web_member_unsubscription.php?cid=4870&teid=volcan9@gmail.com&mbrid=cf7cc75d395cbf901f73967b1267db42 style="text-decoration: none; color: red;">Remove/unsubscribe</a><font style="font-size:14px" face="Verdana" color="#000000">&nbsp;&nbsp;|&nbsp;&nbsp;<font style="font-size:12px" face="Verdana" color="#3c3c3c"><a href=https://house.com/powerhouse/fe_web_member_update.php?cid=4870&peid=volcan9@gmail.com&mbrid=cf7cc75d395cbf901f73967b1267db42 style="text-decoration: none;  color: blue;">Update</a> contact/membership info.<font style="font-size:14px" face="Verdana" color="#000000">&nbsp;&nbsp;|&nbsp;&nbsp;<font style="font-size:12px" face="Verdana" color="#3c3c3c"><a href=https://house.com/powerhouse/fe_web_member_subscription_verify.php?oeid=mod.s@solutionsinc.com&cid=4870 style="text-decoration: none;  color: blue;">Subscribe</a> to receive requirements
                                </font> 
                            </p>
                            </td>
                    </tr>

                      <tr>
                        <td colspan="2"  valign="middle">
                            <p style="margin-left:0px;margin-right:0px;margin-top:0px; margin-bottom:0px;"> 
                                <font style="font-size:15px" color="#3C3C3C" face="Verdana" >
                                        <br><u>From</u>:<br>
                                       mod,<br>
                                       Solution<br>                                            
                                       mod.s@solutionsinc.com<br>
                                       <span style="background-color: #FFFF00"><b>Reply to:</b></span> &nbsp;&nbsp;mod.s@solutionsinc.com<br><br>

                                </font> 
                            </p>
                        </td>
                    </tr>  

                        <tr >
                            <td  width="800" valign="top"  style="border-top: solid 1px #333399; ">
                                <p align="justify" style="margin-left:0px;margin-right:0px;margin-top:0px; margin-bottom:0px;"> 
                                <font style="font-size:12px" color="#666666" face="Verdana">
                                     <a href="http://www.res.com/#!products/c5n6" style="text-decoration: none; color: red" title="Click to view more details">.</a>
                                </font>
                            </p>
                            </td>

                                <td    valign="top" style="border-top: solid 1px #333399; ">
                                    <p  align="right" style="margin-left:0px;margin-right:0px;margin-top:0px; margin-bottom:0px;">  
                                <font style="font-size:10px" color="#3C3C3C" face="Verdana">

                                </font>
                            </p>
                                </td>
                        </tr>
                </table><br>
            </p>

Так, існує кілька способів зробити це. kutoolsповинен працювати для декількох адрес електронної пошти. Які ще варіанти ви спробували, і в чому полягає проблема. Який з різних тегів ( unix, vba, google-spreadsheets, excel) ви хочете використовувати? Якого виходу ви хочете?
Рон Розенфельд

@RonRosenfeld Необхідний вихід - витягніть електронні листи та збережіть їх в окремому розкладному аркуші або в сусідньому стовпчику. Я хотів би скористатись програмою excel vba або будь-якою з них простіше
Метт

Відповіді:


1

Ця визначена користувачем функція (UDF) поверне масив існуючих адрес електронної пошти у посилається комірку.

Потім окремі адреси можна отримати різними методами:

  • Використовуйте функцію INDEX
  • Введіть функцію як масив через декілька комірок
  • Використовуйте його в макросі для виконання спеціалізованих дій, які можуть знадобитися.

Характер адреси електронної пошти визначається шаблоном регулярного вираження sPatта детально описаний нижче.

Ви ставите UDF в звичайний модуль

Option Explicit
Function ExtrEmail(S As String) As String()
    Dim sTemp() As String
    Dim RE As Object, MC As Object, M As Object
    Const sPat As String = "\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}\b" 'Regex for emails
    Dim I As Long

'Initialize Regex engine
Set RE = CreateObject("vbscript.regexp")
With RE
    .Pattern = sPat
    .Global = True
    .ignorecase = True
    If .test(S) = True Then
        Set MC = .Execute(S)
        ReDim sTemp(1 To MC.Count)
        I = 0
        For Each M In MC
            I = I + 1
            sTemp(I) = M
        Next M
    End If
End With
ExtrEmail = sTemp
End Function

Один із способів його використання показаний на скріншоті нижче (за допомогою функції INDEX). Формула вводиться B1і заповнюється праворуч і вниз. IFERRORПоложення змушує його повертати порожній рядок , якщо менше збігів , ніж заповнені клітини.

Редагувати: зображення змінено, щоб показати всі три приклади

введіть тут опис зображення

Пояснення зразка Regex

Адреса електронної пошти

\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}\b

Варіанти: Нечутливий до корпусу; ^ $ не відповідають при перервах рядків

Створено за допомогою RegexBuddy


@Matt Якщо це працює для вас, ви можете, будь ласка, позначити мою відповідь прийнятою? Прочитайте, будь ласка, що я повинен робити, коли хтось відповість на моє запитання?
Рон Розенфельд

Я спробував ваше рішення для формату введення 3. На жаль, ваше рішення не працює. Це витягує лише перше виникнення електронної пошти. Не всі численні електронні листи, наявні в комірці, витягуються. Не впевнений, що проблема пов’язана з вхідними даними або я її виконую неправильно - = IFERROR (INDEX (ExtrEmail ($ A1), COLUMNS ($ A: A))), ""
Matt

@Matt Здається, що тут добре працювати з вашими щойно доданими даними Формат вводу 3. І ваша формула здається нормальною, якщо припустити, що ваші дані - A1. Я опублікую скріншот моїх результатів із усією вашою інформацією
Рон Розенфельд,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.