将工作簿导出为 pdf 文件时如何保持所有超链接正常工作?



使用Excel 2016 VBA和Workbook.ExportAsFixedFormat Method,如何保持多个工作表之间的超链接正常工作?

生成的 pdf 将获取所有工作表和超链接格式,但它们不起作用。另一方面,当与 Microsoft Word 一起使用时,相同的方法可以使超链接保持工作。

我使用的代码如下,Sheet1 与 Sheet2 和 Sheet3 有炒作链接:

Sub ExportAsPDF()
ActiveWorkbook.Sheets(Array("Sheet1", "Sheet2", "Sheet3")).Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
"C:tempo.pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=True
End Sub

我遇到了类似的问题,最终通过这样做让它工作:

1(我将链接移动到不同的单元格,并将链接单元格格式化为文本

2(我使用文本格式字段上的HYPERLINK((函数创建了要导出的链接。

这应该对你有用。

如果不使用第三方软件,导出为 PDF 时无法完全保留 Excel 文档中的内部交叉引用超链接。下面给出了部分工作的内部交叉引用超链接的解释半解决方案

解释:

正如 Kevin 在 SE 上所说,使用Workbook.ExportAsFixedFormat导出为 PDF 时,仅保留外部超链接(指向其他文件或 URL(。内部文档交叉引用超链接在导出过程中丢失。

正如Brian在SE上所说,使用Adobe Acrobat等第三方软件,可以创建PDF文件,保留内部交叉引用超链接。但是,这不是一种纯粹的卓越方法。

半解决方案 1(链接仅适用于在 Web 浏览器中打开的 PDF(:

如果我们想避免使用第三方软件,可以使用此半解决方案。使用此解决方案,可以创建指向导出的 PDF 文件的特定页面的内部超链接。但是,内部超链接仅在 Web 浏览器中打开 PDF 文件时才有效。此外,超链接仅适用于 PDF 文件,不适用于 Excel 文档。

如果我们想创建一个超链接,该超链接将指向导出的PDF文件中的特定页面(例如15(,我们可以在Excel中使用以下语法。

=HYPERLINK("#page=15","displayed text")

#运算符通常在 Excel 中用作动态引用运算符,告诉公式引用同一工作簿中的单元格。但是,在这种情况下,整个引用 (#page=15( 的格式不是由 Excel 支持的,而是由打开导出的 PDF 文件的 Web 浏览器支持的。

因此,当您在网络浏览器中打开PDF文件时(例如file:///C:/filename.pdf(,然后单击超链接,您将被重定向到带有参考文献中给出的数字的页面(例如file:///C:/filename.pdf#page=15(

半解决方案2(指向在线存储副本的外部链接(:

这种半解决方案与其说是解决方案,不如说是一种解决方法。使用此解决方案,可以创建指向导出的 PDF 文件的特定页面的超链接。但是,超链接将打开文件的在线存储副本

如果文件托管服务可用,您可以将 PDF 文件上传到该服务(例如http://my1337hosting.com/filename.pdf(,然后创建一个外部超链接(例如http://my1337hosting.com/filename.pdf#page=15( 到在线存储的 PDF 文件版本。

最新更新