显示文本链接以从Excel打开特定PDF页面

问题描述 投票:1回答:3

我在网上发现了一个VBA代码,在IE中打开了一个内部(共享驱动器)PDF文档页面(例如转到PDF文件的第8页)。我想在单元格中显示文本以供用户点击(例如“点击此处查看”)。

问题:单元格当前显示“0”,我必须转到功能栏并按[Enter]执行。

Excel版本:2003

功能调用:

=GoToPDFpage("S:\...x_2011.pdf",8)

VBA代码:

Function GoToPDFpage(Fname As String, pg As Integer)
Set IE = CreateObject("InternetExplorer.Application")
With IE
.Navigate Fname & "#page=" & pg
.Visible = True
End With
End Function

:编辑:

我能够显示文本,但它仍然不是我想要的链接。

="Click to view" & GoToPDFpage("S:\...x_2011.pdf",8)

谢谢您的帮助。

pdf excel-vba excel-2003 vba excel
3个回答
0
投票

尝试菜单 - >数据 - >数据验证。在第二个选项卡中,您可以编写消息。


0
投票

如果您没有高复杂的工作簿/工作表,您可以尝试以下方法:

将“单击以查看”单元格转换为具有以下特征的超链接。

  • 让它指向自己
  • 单元格内的文本必须始终是字符串Page =加上要打开的pdf的数字。例如:Page = 8

然后转到工作表模块并粘贴以下代码:

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)

    If Left(ActiveCell.Value, 4) = "Page" Then

        GoToPDFpage Range("A1").Value, Mid(ActiveCell.Value, 6)
        'This code asumes that the file address is writen in the cell A1

    End If
    '
End Sub
'

每次在工作表中运行超链接时,都会触发上述编写的代码。 由于超链接始终指向自身,“Activecell.Value”将始终具有您要打开的页码。

我假设您可以将文件地址放在单元格A1中。您可以修改此部分以指向任何其他单元格。 (包括:当前超链接右侧的单元格等)。

这可能不是最佳选择,但如果您只需要在几个单元格中使用快速功能,则可能就足够了。

希望能帮助到你 !


编辑:要使每个HLink引用自身,您可以选择所有具有链接的单元格,然后运行此过程:

Sub RefHLink()
    Dim xCell As Range

    For Each xCell In Selection

        ActiveSheet.Hyperlinks.Add Anchor:=xCell, Address:="", SubAddress:= _
        xCell.Address, ScreenTip:="Click Here", TextToDisplay:="Page="
    Next xCell

End Sub

0
投票

如何让excel写一个批处理文件然后运行呢?

*编辑pdf和AcroRd32.exe的路径

Sub batfile()
  Dim retVal
  filePath = "path\pdf.bat"
  pg = 2
  Open filePath For Output As #1
  Print #1, "Start /Max /w " & Chr(34) & "Current E-book" & Chr(34) & " " & Chr(34) & "C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe" & Chr(34) & " /a " & Chr(34) & "page=" & pg & Chr(34) & "  " & Chr(34) & "H:\Documents\RPG\Dragonlance\New folder\Sample File.pdf" & Chr(34) & ""
  Close #1
  retVal = Shell(strFilePath)
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.