【问题标题】:Open PDF file with VBA使用 VBA 打开 PDF 文件
【发布时间】:2017-09-26 05:41:46
【问题描述】:

我想使用 Excel VBA 宏打开一个 PDF 文件。

我在 excel 文件中有一个姓名列表。一旦按下命令按钮“打开 PDF”,我希望宏从某个位置打开一个 pdf 文件。

文件名与 activecell.value 对应

提前致谢

Sub Knop1_Klikken()

Dim a As String
Dim myShell As Object

a = ActiveCell.Value

Set myShell = CreateObject("WScript.Shell")
myShell.Run "Z:\simbeton - Solidworks\bp - betonplaten\bp07 - simvlak ZH Sport\PDF\" & "a" & ".pdf"

End Sub

错误:(我的 MS 是荷兰语):

Fout -2147024894 (80070002) tijden uitvoering: Methode Run van object IWshSHell3 错误

翻译: 执行期间出现错误 -2147024894 (80070002): 对象 IWshSHell3 的方法运行失败。

【问题讨论】:

标签: excel vba pdf


【解决方案1】:

您可以像这样简单地使用WScript.Shell

a = ActiveCell.Value
Dim myShell As Object
Set myShell =  CreateObject("WScript.Shell")
myShell.Run "C:\" & a & ".pdf"

【讨论】:

  • 谢谢...但我不熟悉 myShell 函数。我是否以正确的方式应用它?命令按钮 1() Dim a As String a = ActiveCell.Value Dim myShell As Object Set myShell = CreateObject("WScript.Shell") myShell.Run "Z:\simbeton - Solidworks\bp - betonplaten\bp07 - simvlak ZH Sport\ PDF\" & "a" & ".pdf" 结束子
  • 不幸的是它没有。我在我的问题中粘贴了代码。我在最后一行得到一个错误。我是否正确分配了“a”?或者...这不适用于服务器上的文件。 (通过互联网连接的外部硬盘)?提前致谢
  • 使用& a &,不要在它周围使用""。这是一个变量。
  • 啊谢谢...这是一个愚蠢的错误...不幸的是我仍然遇到同样的错误
  • 在windows运行窗口中运行Z:\simbeton - Solidworks\bp - betonplaten\bp07 - simvlak ZH Sport\PDF\file.pdf会发生什么?
【解决方案2】:

你知道它是如何完成的吗? 如果没有,这里是解决方案:

myShell.Run chr(34) & "C:\" & a & ".pdf" & chr(34)

chr(34) 是一个"

区别在于: 您的命令发送 C:\JouBetonInfo.pdf 作为参数,而 我的命令发送 "C:\JouBetonInfo.pdf" 作为参数。请注意我发送的报价。它对我有用(Excel 2007)。

【讨论】:

  • 我还没有找到解决方案。我很快就会试一试。您能否解释一下为什么(以及何时)应该使用 chr(34) 而不是 "。是因为两个 "" 一个接一个不能被 vba 变红吗?为什么在开始和结束时需要双 ""方式?提前谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-11-27
  • 2015-06-12
  • 1970-01-01
  • 1970-01-01
  • 2013-10-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多