Wysyłanie wielu mailto: łączy w arkuszu kalkulacyjnym Excel

1

Mam arkusz kalkulacyjny Excel, który zawiera listę mailto:hiperłączy w jednej z kolumn.
Chciałbym móc wysłać wiadomość e-mail do wybranych z nich, ale kliknięcie jednego - nawet w ramach wyboru - po prostu wysyła ten link do programu pocztowego, a próba skopiowania go powoduje skopiowanie tylko wyświetlanego tekstu - wydaje się, że nie ma sposobu na skopiowanie linku.

Nie mogę również znaleźć sposobu na uzyskanie dostępu do łącza znajdującego się pod spodem z formuły w innej komórce, aby połączyć różne logiczne grupy ludzi w pojedyncze łącza zawierające wszystkie ich adresy.

Przeszukałem go i znalazłem wiele rozwiązań dla linków z wieloma adresami, ale nie takiego, który przyjmuje zestaw linków, z których każdy zawiera jeden adres jako punkt początkowy.

Czy ktoś wie jak to zrobić?

Craig Graham
źródło

Odpowiedzi:

0

Będziemy musieli tutaj użyć trochę VBA, ale nie martw się - to przyjemne i łatwe!

Naciśnij Alt+ F11. Spowoduje to otwarcie edytora Visual Basic. Na górnym pasku menu kliknij Wstaw, a następnie Moduł . Wklej następujący kod w oknie, które pojawi się po prawej stronie:

Function GetEmailAddress(EmailCell As Range) As String
   GetEmailAddress = Replace(EmailCell.Hyperlinks(1).Address, "mailto:", "")
End Function

Możesz teraz zamknąć to okno i wrócić do arkusza kalkulacyjnego.

Dodaj kolumnę po prawej stronie listy nazw zawierającej linki. Tutaj będziemy przechowywać nasze adresy e-mail. Wprowadź tę formułę i skopiuj:

=GetEmailAddress(A2)

wprowadź opis zdjęcia tutaj

Połącz adresy e-mail, które Cię interesują w innej komórce, i prześlij link do wyniku:

=HYPERLINK("mailto:"&A2&","&A3&","&A4&","&A5,"email people")

Powoduje to wyświetlenie linku, email peoplejak pokazano w komórce D4 na zrzucie ekranu. Kliknięcie linku powoduje wysłanie listy adresów do klienta e-mail.

wprowadź opis zdjęcia tutaj

Uwaga - ponieważ dodaliśmy kod VBA, będziemy musieli zapisać plik jako plik .xls lub .xlsm.

Andi Mohr
źródło
Problem w tym, że wyświetlany tekst to imię osoby, więc jeśli spróbuję czegoś z formułami, otrzymam nazwy wyświetlane, a nie adresy e-mail. Nie mogę znaleźć sposobu na uzyskanie rzeczywistego celu linku w formule.
Craig Graham
Och, masz na myśli, że wartość komórki to dosłownie imię osoby, a ktoś kliknął komórkę prawym przyciskiem myszy, dodał hiperlink i tak wpisał adres e-mail? Ahh OK, możemy sobie z tym poradzić. Trzymaj się kleszcza.
Andi Mohr
Tak. Nie wiem, dlaczego nie ma tylko oddzielnej kolumny e-mail, ale to nie ja ją utrzymuję, więc tak właśnie jest.
Craig Graham
0

Ponieważ zaakceptowana odpowiedź polega na utworzeniu dodatkowej kolumny, a tak naprawdę nie przejmuję się końcowym hiperłączem - jestem całkiem zadowolony z kopiowania i wklejania łańcucha do programu pocztowego - dostosowałem w ten sposób zaakceptowaną odpowiedź funkcjonować. Może się przydać komuś, kto robi podobnie, i nie działało to jako komentarz.

Function GetEmailAddress(EmailCell As Range) As String

    Dim addressList As String
    Dim sep As String

    For Each c In EmailCell.Cells
        addressList = addressList & sep & Replace(c.Hyperlinks(1).Address, "mailto:", "")
        sep = ","
    Next

   GetEmailAddress = addressList

End Function 
Craig Graham
źródło