mailto:
我有一个 Excel 电子表格,其中一列包含超链接列表。
我希望能够向其中选定的链接发送电子邮件,但单击其中一个链接(即使是选定的链接)只会将该链接发送到邮件程序,而尝试复制它们只会复制显示文本 - 似乎无法复制底层链接。
我还找不到从另一个单元格中的公式访问底层链接的方法,以将不同逻辑的人群连接成包含他们所有地址的单个链接。
我在 Google 上搜索并找到了许多包含多个地址的链接的解决方案,但没有一个以一组每个包含单个地址的链接作为起点的解决方案。
有人知道怎么做吗?
答案1
在这里我们需要使用一些 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 文件。
答案2
由于接受的答案需要额外添加一列,而我其实并不太在意是否有最终的超链接——我很乐意将字符串复制并粘贴到电子邮件程序中——我已经使用此功能调整了接受的答案。对于做类似事情的人来说可能很有用,但它没有起到评论的作用。
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