Ber*_*ert 5 excel vba hyperlink excel-formula vba7
这个小组中的任何人都可以就我试图解决的问题提供一些建议吗?我试图使用 Excel 超链接功能将 PDF 文档打开到特定页面。我试图解开这个谜团,但没有成功。希望有人能给我提供他们的想法和想法。



我尝试了 Google 和 Youtube,但只有少数与我的问题相关,并且讨论的解决方案不适用于我的情况......或者也许我错过了一些东西。一旦问题解决,这对我来说将是一个很大的帮助。先感谢您。
使用启用宏的工作簿,您可以劫持超链接打开事件,但它并不像我们希望的那样动态。不幸的是,我们无法取消任何跟随的超链接Worksheet_FollowHyperlink,因此我们需要找到一种绕过直接超链接的方法。
我们可以通过引用自身来创建一个无处可去的超链接,然后将文本设置为显示为“跟随链接”。因为单元格引用位于超链接中,所以我们可以使用该单元格引用的偏移量来从其前面的列中获取所需的地址和子地址;然后我们就可以在所需的位置打开 PDF。
不幸的是,如果复制下来,超链接仍然会引用原始单元格,因此每个链接都需要单独编辑。到目前为止我还没有找到HYPERLINK成功使用该功能的方法。
左侧单元格中的超链接格式需要是附加“#page=”和相关页面的完整路径;例如C:\links\blah.pdf#page=6
在工作表模块中
Const AcrobatReader = "C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe"
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
If Target.TextToDisplay = "Follow Link" Then
Dim Ref As String: Ref = Range(Target.SubAddress).Offset(0, -1).Text
Dim URL() As String: URL = Split(Ref, "#page=")
If UBound(URL) > 0 Then Call OpenPDFtoPage(URL(0), CLng(URL(1)))
End If
End Sub
Function OpenPDFtoPage(FilepathPDF As String, page As Long)
Dim Path As String: Path = AcrobatReader & " /A ""page=" & page & """ " & FilepathPDF
Shell Path, vbNormalFocus
End Function
Run Code Online (Sandbox Code Playgroud)
AcroRd32.exe 路径可能需要针对特定安装进行更新
也许只有一个“跟随链接”超链接,其中旁边的单元格中的 URL 更加动态,可能会使其更有用。