Wybierz wszystkie komórki programu Excel, które nie zawierają adresów e-mail

1

Używam programu Microsoft Excel 2010. Jak mogę wybrać wszystkie komórki, które nie są adresami e-mail? Chcę je usunąć i zachować tylko komórki, które sprawdzają poprawność adresów e-mail.

Nadeem Khedr
źródło
Niezła edycja, @Lord T. Nadeen, społeczność również poprawiła twoje pierwsze pytanie . Użyj tego jako informacji zwrotnej. Dzięki!
Arjan

Odpowiedzi:

4

Sprawdzanie poprawności adresów e-mail to czarna dziura. A nawet jeśli byłbyś w stanie określić tę ważność wiadomości e-mail, nadal nie będziesz wiedział, czy jest to działający adres e-mail, czy nawet adres e-mail tej osoby (mogły wpisać adres innej osoby).

Jeśli nadal chcesz wykonać podstawowy test składni, możesz przejść do VBA (może wymagać włączenia na karcie Deweloper na wstążce) i ustawić odwołanie do „Microsoft VBSript Regular Expressions 5.5”, utworzyć nowy moduł i wprowadzić ten kod (Nie jestem wprawny w RegEx, więc dostałem go od StackOverflow , możesz uzyskać inne RegEx na FightingForALostCause lub pełną dyskusję w Regular-Expressions ):

Public Function CheckEmailSyntax(ByVal Email As String) As Boolean
    Dim regex As RegExp
    Set regex = New RegExp
    regex.Pattern = "^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,6})$"
    regex.IgnoreCase = True
    CheckEmailSyntax = regex.Test(Email)
End Function

Następnie w swoim projekcie wpisz coś takiego =CheckEmailSyntax(A1). Wróci TRUEza dobre i FALSEza złe. Posortuj obie kolumny według kolumny T / F i usuń kolumny FAŁSZ. Mam nadzieję że to pomoże.

Ryan Clarke
źródło
2
Ładny. Ale na przykład, znak plusa jest obecnie dość często używany w adresach e-mail. Więc: uważaj na fałszywe negatywy, gdy używasz takiego prostego wyrażenia regularnego.
Arjan
@Arjan Bardzo prawdziwe. Dodałem linki do innych (być może lepszych?) Wyrażeń regularnych. Problem pozostaje taki, jak ostrzegałem, nadal nie wiesz, czy wszystkie „dobre” wiadomości e-mail są w użyciu, i to dla osoby, którą myślisz.
Ryan Clarke
2

To działało dla mnie:

  1. Przejdź do Edycja na wstążce głównej.
  2. Kliknij Znajdź i wybierz .
  3. Wpisz @ w Znajdowanie co: .
  4. Kliknij Znajdź wszystko .
  5. W wynikach naciśnij Ctrl+, Aaby wybrać całą grupę w wynikach.
  6. Kliknij Kopiuj na wstążce głównej.
  7. Wklej do nowej kolumny.
Kevin
źródło
+1 te proste sztuczki są oszałamiające nawet po latach. Ok, ma kilka wad. Na przykład, co jeśli komórki nie-mailowe mają znak @. Lub chcesz, aby wszystkie komórki poczty były w jednej kolumnie docelowej. Ale to jest dobre.
nixda
-2

Używałbym funkcji Znajdź i wybierz / Sprawdzanie danych.

  • Na karcie Strona główna przejdź do grupy edycji.
  • Wybierz „Znajdź i wybierz”
  • Wybierz Idź do Special
  • Wybierz walidację danych
  • Wybierz opcję Same lub All
  • Kliknij OK

Komórki zawierające sprawdzanie poprawności danych zostaną podświetlone.

Panna M
źródło
nie, nie chcę tego, nie chcę komórki, która zawiera sprawdzanie poprawności danych, chcę zaznaczyć wszystkie komórki, które nie pasują do wzorca wiadomości e-mail
Nadeem Khedr
-1 nie zajął się rzeczywistym pytaniem.
brettdj