excel - 从单元格引用插入动态超链接并将其放在复制的范围之上

标签 excel vba email hyperlink

我正在运行一份通过电子邮件分发的报告。电子邮件中包含指向报告的超链接以及从中复制的一系列单元格作为报告内容的快照。我正在尝试自动化并找到一些 VBA,但我不是程序员,无法根据需要对其进行修改。

下面的 VBA 让我得到了大部分的帮助,但有两个缺点:

1) 我需要超链接指向我在电子邮件中引用的特定文件,该文件每天都会更改(即创建一个独特的工作簿)。下面使用静态超链接。我试图找出一种从单元格引用中获取超链接的方法。

2)将超链接和单元格范围从excel复制到电子邮件中时,我需要超链接下方的单元格。下面将范围放在超链接上方。

我想保留下面 VBA 中采用的引用工作表以获取电子邮件的方法。在其他分发的报告上部署似乎很容易。

子 CreateMail()

    Dim rngSubject As Range
    Dim rngTo As Range
    Dim rngCc As Range
    Dim rngBody As Range
    Dim objOutlook As Object
    Dim objMail As Object

    Set objOutlook = CreateObject("Outlook.Application")
    Set objMail = objOutlook.CreateItem(0)
        With ActiveSheet
        Set rngTo = .Range("B1")
        Set rngCc = .Range("B3")
        Set rngSubject = .Range("B2")
        Set rngBody = .Range("H6:K22")

    End With
    rngBody.Copy
     With objMail
        .Body = "Please click on the link below..." & vbCrLf & "rngBody.Paste" & vbCrLf & _
"file:\\dbd03\nccode\Router_Proc\04Routing.txt"
    End With
    With objMail
        .To = rngTo
        .Cc = rngCc
        .Subject = rngSubject

        .Display
    End With
    SendKeys "^({v})", True

    Set objOutlook = Nothing
    Set objMail = Nothing

最佳答案

1)要使文件链接动态,您可以在文件路径中包含单元格的引用,包含文件名。

"<file:\\dbd03\nccode\Router_Proc\" & _
        ActiveSheet.Range(<cell address here>) & ">"

注意:在将路径放入电子邮件之前,您可能还需要检查以确保路径存在 (like this)

2)要粘贴超链接下方的单元格,您可以使用另一个SendKeys组合来模拟按 Ctrl + End,这会将光标放在电子邮件的末尾。在使用 SendKeys 之前执行此操作模拟 Ctrl + V 应该在正文之后粘贴单元格范围。您更新的代码应如下所示:
With objMail
    .To = rngTo
    .Cc = rngCc
    .Subject = rngSubject
    .Display
End With
SendKeys "^({END})", True '<--- Add this line HERE
SendKeys "^({v})", True

另注:另外,我认为您不需要"rngBody.Paste"在您的正文字符串中,因为这只是将确切的文本粘贴到您的电子邮件正文中

关于excel - 从单元格引用插入动态超链接并将其放在复制的范围之上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19527221/

相关文章:

excel - 根据自动过滤条件循环 IF

java - Swing 电子邮件客户端抛出 javax.mail.AuthenticationFailedException

c# - 在 epplus 中标记图例

vba - 制作 Excel 宏以快速输入数据::: VBA::: Excel:::

vba - 如何在 Excel VBA 中组合 FormulaArray 和 FormulaLocal 选项?

regex - 如何编写正则表达式来填充给定文件类型的列表以排除某些文件夹

excel - VBA Vlookup 宏

excel - 如何浏览保存目录?

python - 在 Python 中使用 email.mime.multipart 发送电子邮件

python - 发送电子邮件时 Django 线程是否被阻塞?