链接发送电子邮件到 Outlook 并且主题等于单元格值 vba

链接发送电子邮件到 Outlook 并且主题等于单元格值 vba

我创建了一个超链接名称发送我希望当用户点击它时,Outlook 会自动显示。并且我希望主题相当于单元格值

例如这是我的 col:

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

第 7 列是超链接,单击后 Outlook 将显示。在我想要显示的电子邮件主题窗格上列 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

您正在编写的宏将静态 Mailto 链接放入单元格中。
您也可以直接在单元格中构建动态 Mailto 链接,而无需使用 VBA。

首先,这里是“mailto:”属性:
来自Yoast.com指南:MailTo 链接

  • mailto:设置收件人,或多个收件人,以逗号分隔
  • 随后是““如果有属性。在后续属性前加上“&
  • 抄送=设置抄送收件人密件抄送=设置密件抄送收件人
  • 主題=设置电子邮件主题,对较长的句子进行 URL 编码,
    因此用 %20 等替换空格。
  • 正文=要设置邮件正文,您可以在此处添加整个句子,
    包括换行符。换行符应转换为 %0D%0A。

示例字符串:“mailto:[电子邮件保护]?主题=主题&[电子邮件保护]
因此,您编写的代码将如下所示:

ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="mailto:[email protected]?subject=subject&[email protected]"

要以编程方式形成字符串,请使用

... Address:="mailto:" & Range("A1") & "?subject=" & Range("A2") ...
其中 A1 是包含电子邮件地址的单元格,依此类推。

这是一个静态解决方案,因为如果这些单元格中的信息发生变化,则需要再次运行宏来更新“发送”链接。

无需vba的动态解决方案:

在“发送”单元格中使用此公式:

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

如果单元格中存在非标准换行符,则可能需要处理正文值中的一个或两个细节。

使用正确的姓名和电子邮件地址通常也有效:

相关内容