我创建了一个超链接名称发送我希望当用户点击它时,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")
如果单元格中存在非标准换行符,则可能需要处理正文值中的一个或两个细节。
使用正确的姓名和电子邮件地址通常也有效:
- 单元格 A1=
first recipient<[email protected]>
... Address:="mailto:first recipient<[email protected]>?subject=subject ..."