自动创建PDF以包含超链接

时间:2016-09-14 13:23:32

标签: excel vba excel-vba pdf printing

我为此寻找过互联网。到目前为止,我知道:

VBA本身无法在pdf文件中运行。 VBA是Microsoft专有的编程语言,仅适用于某些Microsoft产品(如Office),而pdf格式不是来自Microsoft且不支持VBA。

因为打印到PDF涉及第三方软件,无论是Adobe还是其他PDF打印机,据我所知,Excel无法将文件名和位置直接发送到PDF打印机。

因此.ExportAsFixedFormat将不包含最终pdf中的超链接。

是否有任何方式,使用其他软件或编码或任何东西,创建包含超链接的pdf,而不是手动创建。即如何自动创建pdf以包含超链接?我已经尝试过Excel 2016和2010.

我们有软件可以每天自动创建Excel报告,保存文件,保存pdf,并将电子邮件发送给人们。我知道你可以用Adobe编写脚本,但我怎样才能让它们自己每天运行?或者也许其他一些软件可以做到这一点?

任何想法都将不胜感激。

2 个答案:

答案 0 :(得分:0)

使用以下代码,超链接适用于PDF:

Sub SaveAsPDF()
Dim sPath As String

sPath = Environ("Temp") & "\"

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
sPath & "File name here" & ".pdf", Quality:= _
xlQualityStandard, includedocproperties:=False, ignoreprintareas:=False, _
openafterpublish:=False

ActiveWorkbook.Save

End Sub

答案 1 :(得分:0)

像petgiraffe19一样,我同时使用超链接功能和PDF导出时遇到了麻烦。我的解决方案是通过VBA创建超链接,例如:

Worksheets("Sheet1").Hyperlinks.Add Anchor:=Range("A1"), _
Address:="https://stackoverflow.com", _
ScreenTip:="Link to stackoverflow", _
TextToDisplay:="Link"

根据字体设置,可能需要重置字体,这也可以通过VBA完成:

With Range("A1").Font
    .Name = "Calibri"
    .Size = 9
    .Underline = xlUnderlineStyleNone
    .ColorIndex = xlAutomatic
End With

最后,ExportAsFixedFormat可用于导出,其中包括带有超链接的单元格。