如何在Excel VBA中以电子邮件中的链接的形式发送ActiveWorkbook.Path?

时间:2018-07-19 15:23:56

标签: html excel vba excel-vba

我正在尝试使用ActiveWorkbook.Path和ActiveWorkbook.Name通过电子邮件将excel工作簿的文件路径发送给某人。当我将文件路径输入为字符串时,它可以正常工作,但是由于某种原因,当我以这种方式执行操作时,它无法识别完整路径。我不想使用硬编码的文件地址,以防有人将其移动到其他文件夹中。这是我在代码的.HTMLBody部分中使用的:

.HTMLBody = emailtext & "<p>&nbsp;</p>" & "<p><strong>Click this link to go to task verification worksheet: <A href=" & _
        "" & ActiveWorkbook.Path & "\" & ActiveWorkbook.Name & "" & ">Verification Workbook</A></strong></p>"

完整路径应为D:\ Control Verification \ WorkbookName.xlsm,但是当我尝试单击链接时,它试图访问D:\ Control。预先感谢您的帮助!

3 个答案:

答案 0 :(得分:3)

您可以使用ThisWorkbook.FullName而不是ActiveWorkbook.Path & "\" & ActiveWorkbook.Name来返回整个路径,从而简化代码。

此外,如果要发送的工作簿是执行代码的工作簿,则最好使用ThisWorkbook而不是ActiveWorkbook,因为ActiveWorkbook可以被许多事件更改,并且{ {1}}始终返回执行代码的工作簿。

答案 1 :(得分:1)

"<p>&nbsp;</p>" & "<p><strong>Click this link to go to task verification worksheet: <A href=" & _
    """" & ActiveWorkbook.Path & "\" & ActiveWorkbook.Name & """" & ">Verification Workbook</A></strong></p>"

在href周围添加引号,作为路径:D:\ Control Verification \ WorkbookName.xlsm包含空格。

答案 2 :(得分:0)

我想问题是ActiveWorkbook没有保存...

将其保存在某处并尝试以下操作:

Public Sub TestMe()

    ActiveWorkbook.Save

    MsgBox "<p>&nbsp;</p>" & "<p><strong>Click this link: <A href=" & _
           "" & ActiveWorkbook.Path & "\" & ActiveWorkbook.Name & "" & _
           ">Verification Workbook</A></strong></p>"

End Sub

通常,请尝试谨慎处理VBA ActiveWorkbookActiveCellActiveSheet中的“活动”内容-有时它们可​​以是其他内容,而不是已被期待的内容-{ {3}}。