1

У меня есть таблица Excel, в которой есть список гиперссылок mailto: в одном из столбцов.
Я хотел бы иметь возможность отправлять электронные письма выбранным из них, но щелчок по одному из них - даже как часть выбора - просто отправляет эту одну ссылку в почтовую программу, и при попытке скопировать их копирует только отображаемый текст. кажется, нет способа скопировать основную ссылку.

Я также не могу найти способ доступа к базовой ссылке из формулы в другой ячейке, чтобы объединить различные логические группы людей в одну ссылку, содержащую все их адреса.

Я гуглил и нашел много решений для ссылок с несколькими адресами в них, но не одно, которое берет набор ссылок, каждая из которых содержит один адрес в качестве отправной точки.

Кто-нибудь знает, как это сделать?

2 ответа2

0

Мы собираемся использовать немного VBA здесь, но не волнуйтесь - это приятно и просто!

Нажмите Alt+F11. Это вызовет редактор Visual Basic. В верхней строке меню нажмите « Вставить», а затем « Модуль». Вставьте следующий код в окно, которое появляется справа:

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

Вы можете закрыть это окно и вернуться к своей таблице.

Добавьте столбец справа от вашего списка имен, содержащих ссылки. Мы собираемся хранить наши адреса электронной почты здесь. Введите эту формулу и скопируйте:

=GetEmailAddress(A2)

Объедините интересующие вас адреса электронной почты в другой ячейке и создайте гиперссылку на результат:

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

При этом создается ссылка с указанием email people как показано в ячейке D4 на снимке экрана. Когда вы нажимаете на ссылку, он отправляет список адресов на ваш почтовый клиент.

Обратите внимание - поскольку мы добавили некоторый код VBA, нам нужно сохранить файл в формате .xls или .xlsm.

0

Поскольку принятый ответ включает создание дополнительного столбца, и я на самом деле не слишком беспокоюсь о наличии окончательной гиперссылки - я вполне доволен простым копированием и вставкой строки в программу электронной почты - я адаптировал принятый ответ с этим функция. Может быть полезным для тех, кто делает подобное, и это не сработало как комментарий.

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 

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .