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

时间:2010-12-02 22:33:38

标签: pdf excel-vba excel-2003 vba excel

我在网上发现了一个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)

感谢您的帮助。

3 个答案:

答案 0 :(得分:0)

尝试菜单 - >数据 - >数据验证。在第二个标签中,您可以编写信息。

答案 1 :(得分:0)

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

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

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

然后转到workseet模块并粘贴以下代码:

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

答案 2 :(得分: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