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

пример вот мой col:

col 1     |col 2    |col3   |col 4    |col5    | col 6   |col 7
2019-001  |  ...    | ...   | ...     | ...    |Reports  |send
2019-002  |  ...    | ...   | ...     | ...    |Receipt  |send
...

столбец 7 - это гиперссылка, и при ее нажатии отобразится внешний вид. в теме письма, которое я хочу отобразить, например, столбец 1 и столбец 6 : 2019-001 - отчеты

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

но я не знаю, как применить его в моем коде.

Я просто создаю это

Range("G5").Select
ActiveCell.FormulaR1C1 = "send"
Range("G5").Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
"email add", TextToDisplay:="send"
Selection.AutoFill Destination:=Range("G5:G1222"), Type:=xlFillDefault

и теперь я не знаю, как добавить то, что я хочу для предмета. нужна помощь спасибо!

1 ответ1

0

Макрос, который вы пишете, помещает статическую ссылку Mailto в ячейку.
Вы также можете создать динамическую ссылку Mailto непосредственно в ячейке без VBA.

Для начала вот атрибуты "mailto:":
От Yoast.com Guide: MailTo Ссылки

  • mailto: для установки получателя или получателей, разделенных запятой
  • Вслед за " ?«если есть атрибуты. Следовать за последующими атрибутами с помощью « & »
  • cc = установить получателя (ей) CC bcc = установить получателя (ей) BCC
  • subject = установить тему письма, кодировать URL для более длинных предложений,
    поэтому замените пробелы на% 20 и т. д.
  • body = чтобы установить тело сообщения, вы можете добавить целые предложения здесь,
    включая разрывы строк. Разрывы строк должны быть преобразованы в% 0D% 0A.

Пример строки: "mailto: info@example.com? Subject=subject&cc=cc@example.com"
Поэтому код, который вы пишете, будет выглядеть так:

ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="mailto:info@example.com?subject=subject&cc=cc@example.com"

Для программного формирования строки используйте

... Address:="mailto:" & Range("A1") & "?subject=" & Range("A2") ...
где A1 - ячейка с адресом электронной почты и т. д.

Это статическое решение, потому что макрос необходимо будет запустить снова, чтобы обновить ссылку "отправить", если информация в этих ячейках изменилась.

Динамическое решение без vba:

Используйте эту формулу в ячейке "отправить":

=HYPERLINK("mailto:" & A1 & "?subject=" & A2 & "&body=" & A3,"send")

Может быть одна или две детали для обработки со значением body, если в ячейке есть нестандартные разрывы строк.

Использование правильного имени и адреса электронной почты, как правило, также работает:

  • Ячейка A1 = first recipient<info@example.com>
  • ... Address:="mailto:first recipient<info@example.com>?subject=subject ..."

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