如何使用单词表中的信息在特定页面上打开pdf文件

时间:2013-04-17 19:30:19

标签: vba pdf ms-word word-vba

我有一个Word文档,其中包含一个包含3列的表。我正在尝试创建一个宏,它将在第3列的页码中打开一个pdf文件(名称存储在第2列中)。

我在Excel中发现了一个宏,它会在我选择页码单元格时自动打开它,但在Word中没有任何内容。许多用户正在使用Word文档,并且不想切换到Excel。

最好用keybord快捷方式激活宏,如果在表格中,它将在光标所在行指定的页面打开文件。如果光标不在表中,则可能会显示错误。

感谢。

  

[编辑]

以下是Excel宏的代码。请注意,Adobe Reader路径和程序存储在单元格B1中,该文件位于单元格B2中。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

   If Target.Row > 4 And Target.Column = 1 And Target.Value > 0 Then

      vAdobe = ActiveSheet.Cells(1, 2)
      vDocument = ActiveSheet.Cells(2, 2)

      vPage = Target.Value

      result = Shell(vAdobe & " /A ""page=" & vPage & """ " & vDocument, vbNormalFocus)

   End If
End Sub

1 个答案:

答案 0 :(得分:0)

这是一种方式:

Sub OpenPDF()
Dim aRow As Row
Dim vDocument As String
Dim vPage As String
Dim vAdobe As String
Dim result As Long

vAdobe = <File path to Acrobat.exe here.>
If Selection.Information(wdWithInTable) = True Then
    Set aRow = Selection.Range.Rows(1)
    vDocument = Trim(Replace(Replace(aRow.Cells(2).Range.Text, "", ""), vbCr, ""))
    vPage = Trim(Replace(Replace(aRow.Cells(3).Range.Text, "", ""), vbCr, ""))
    result = Shell(vAdobe & " /A ""page=" & vPage & """ " & vDocument, vbNormalFocus)
Else: 'Some error message here.
End If
End Sub

您可能需要使用这些替换方法;我发现有必要删除从表格单元格中拉出的任何文本末尾出现的一些表格字符。

可以在此处找到另一个需要设置引用的选项:http://www.myengineeringworld.net/2012/07/vba-macro-to-open-pdf-file.html