我在网上发现了一个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)
感谢您的帮助。
答案 0 :(得分:0)
尝试菜单 - >数据 - >数据验证。在第二个标签中,您可以编写信息。
答案 1 :(得分:0)
如果您没有高复杂的工作簿/工作表,可以尝试以下方法:
将“点击查看”单元格转换为具有以下特征的超链接。
然后转到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