【问题标题】:Insert filepath as hyperlink Excel VBA插入文件路径作为超链接 Excel VBA
【发布时间】:2016-10-26 11:05:32
【问题描述】:

我有一组 VBA 代码,可以生成电子邮件并自动发送。

我无法正常工作的一件事是在电子邮件中放置一个指向指定文件夹位置的超链接。

Dim fpath As String

fpath = Worksheets("MS_JRNL_OPEN_TU_FR-4333635").Range("AD5").Value

"file://" & fpath & _

本质上,用户在运行 Cell AD5 中的宏时必须输入文件夹位置,但我希望在生成电子邮件后将其作为超链接显示为完整文件夹位置。

任何帮助将不胜感激

【问题讨论】:

    标签: vba excel hyperlink


    【解决方案1】:

    如果您当前在电子邮件代码中使用 HTMLBody,这很容易做到。我假设您正在使用类似于下面的代码。注意strbody.HTMLBody。假设您的fpath 的格式类似于C:\Users\tjb1\Desktop\file.docx,那么您不需要向其中添加任何其他内容。创建超链接的部分是"<A href=" & fpath & ">test link</A>"。您可以更改测试链接以说出您想要的任何内容或将行更改为"<A href=" & fpath & ">" & fpath & "</A>" 以使用路径作为链接文本。

    Sub MailURL()
        Dim OutApp As Object
        Dim OutMail As Object
        Dim strbody As String
        Set OutApp = CreateObject("Outlook.Application")
        Set OutMail = OutApp.CreateItem(0)
        strbody = "<A href=" & fpath & ">test link</A>"
        On Error Resume Next
        With OutMail
            .To = "APerson@Somewhere.com"
            .Subject = "Testing URL"
            .HTMLBody = strbody
            .Send
        End With
        On Error GoTo 0
        Set OutMail = Nothing
        Set OutApp = Nothing
    End Sub
    

    我在MrExcel 找到了上面的代码,并对其进行了一些格式化以使用您的变量。

    【讨论】:

    • 太棒了,我试图将路径作为链接文本进行排序。我以前看过 MrExcel,但在我寻找解决方案时从未出现过。谢谢
    • 使用HTMLBody 还会在生成电子邮件时包含用户签名。我不确定它如何与.Send 一起使用,因为当我使用它时,我使用的是.Display,因此用户可以在需要时输入额外信息。请注意,示例代码包含.Send,因此您不会看到电子邮件的预览。
    • 请记住,我在让 Excel 调用 Outlook 时遇到此警告消息 - support.office.com/en-us/article/… 修复涉及更改文件的安全性,但我不确定如何或什么就像其他人那样。
    • 我确实使用 .Send,它仍然通过交换服务器在电子邮件底部附加用户电子邮件签名。以前没有遇到过这个问题,但如果我遇到了,我提前谢谢你!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-10
    • 2021-08-07
    • 2017-04-29
    • 2013-07-03
    相关资源
    最近更新 更多