Excel cellában lévő e-mail cím kigyűjtése
2006-03-08T13:39:19+01:00
2021-09-15T15:59:17+02:00
2022-08-12T04:30:30+02:00
Hodzsa
Sziasztok!
Abban kérem a segítségeteket, hogy olyan excel cellából, amiben olyan hosszabb szöveg van ami tartalmaz e-mail címet is, hogyan tudom azt gyorsan, hatékonyan kiemelni a szövegből. Tehát nekem csak az e-mail cím kell a cella szövegéből!
Köszi a segítséget.
Hodzsa
Mutasd a teljes hozzászólást!
Feltételezve, hogy a @ csak az e-mail címben van:
x = Selection.Value poz = InStr(x, "@") elo = Left(x, poz) uto = Mid(x, poz + 1) k = InStrRev(elo, " ") If k = 0 Then k = 1 Else k = k + 1 v = InStr(uto, " ") If v = 0 Then v = Len(uto) + 1 MsgBox "*" & Mid(x, k, poz + v - k) & "*"

És ez most nem foglalkozik azzal, ha a poz=0, akkor nincs is e-mail cím

---

Egy másik megoldás:
x = Selection.Value ' Ami lehet még szöveghatároló, azt szóközre cserélem x = Replace(x, ",", " ") x = Replace(x, ";", " ") x = Replace(x, "!", " ") t = Split(x, " ") For Each elem In t ' Itt vizsgálgathatod, hogy az aktuális elem e-mail címe-e. k = InStr(elem, "@") If k > 1 Then ' A "@" minimum a 2. karakter a szóköz után p = InStrRev(elem, ".") If p > k + 1 And p < Len(elem) - 1 Then ' A "." és a "@" között min 1 karakter van, a "." és a vége között minimum 2 MsgBox elem End If End If Next
Mutasd a teljes hozzászólást!

  • VBA-val végigmész a sorokon, és az oszlopokon, a tartalmukat pedíg megnézed, hogy tartalmaznak-e @ karaktert, majd a karakter után a következő szóközig van-e még pont karakter, és a @ előtt van-e még karakter az előtte lévő szóközig. Ha igen, akkor tartalmaz a cella e-mail címet. Ha kell, írhatok kódot is...
    Mutasd a teljes hozzászólást!
  • Hálás lennék egy kódért!
    Mutasd a teljes hozzászólást!
  • Feltételezve, hogy a @ csak az e-mail címben van:
    x = Selection.Value poz = InStr(x, "@") elo = Left(x, poz) uto = Mid(x, poz + 1) k = InStrRev(elo, " ") If k = 0 Then k = 1 Else k = k + 1 v = InStr(uto, " ") If v = 0 Then v = Len(uto) + 1 MsgBox "*" & Mid(x, k, poz + v - k) & "*"

    És ez most nem foglalkozik azzal, ha a poz=0, akkor nincs is e-mail cím

    ---

    Egy másik megoldás:
    x = Selection.Value ' Ami lehet még szöveghatároló, azt szóközre cserélem x = Replace(x, ",", " ") x = Replace(x, ";", " ") x = Replace(x, "!", " ") t = Split(x, " ") For Each elem In t ' Itt vizsgálgathatod, hogy az aktuális elem e-mail címe-e. k = InStr(elem, "@") If k > 1 Then ' A "@" minimum a 2. karakter a szóköz után p = InStrRev(elem, ".") If p > k + 1 And p < Len(elem) - 1 Then ' A "." és a "@" között min 1 karakter van, a "." és a vége között minimum 2 MsgBox elem End If End If Next
    Mutasd a teljes hozzászólást!
  • Köszönöm Micu!:)
    Kipróbáltam, és természetesen működik, csak annyi van még, hogy előfordul, hogy az e-mail cím után csak üres enterek vannak, és azokat is berakja a cellába az e-mailcímmel együtt.
    Tudnád úgy módosítania kódot, hogy az e-mail cím vége után ne másoljon be semmit a cellába, (entert, stb) csak az emilcímet?
    Köszi mégegyszer!
    Hodzsa
    Mutasd a teljes hozzászólást!
  • Cseréld le a feldolgozás elött az ilyen spéci karaktereket:

    x = Replace(x, chr(13), " ")
    x = Replace(x, chr(10), " ")
    .....
    Mutasd a teljes hozzászólást!
  • Hálás köszönet Micu!
    Mutasd a teljes hozzászólást!
  • Szívesen
    Mutasd a teljes hozzászólást!
  • KIMETSZ(JOBB(HELYETTE(BAL(A2;SZÖVEG.TALÁL(" ";A2&" ";SZÖVEG.TALÁL("@";A2))-1);" ";SOKSZOR(" ";HOSSZ(A2)));HOSSZ(A2)))
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd