【问题标题】:Open PDF using cell value in VBA使用 VBA 中的单元格值打开 PDF
【发布时间】:2021-11-06 09:07:48
【问题描述】:

当我单击分配了宏的按钮(在另一个工作表中)时,我想根据另一个工作表“路径”单元格 C2 中的文件路径打开特定的 PDF。

我上个月刚开始学习vba,到目前为止我有这个但是我遇到了一个错误-

Sub Sample()

    ActiveWorkbook.FollowHyperlink Sheets("Paths").Range("C2")

End Sub

错误是:

运行时错误“-214722104 (800401ea)”: 无法打开指定的文件。

请帮忙。

【问题讨论】:

  • C2的内容到底是什么?
  • 嗨!它包含我的 pdf 的文件路径:C:\Users\Renee Arianne\Desktop\Desktop - Filled CIS\CIS_2016 v5filled.pdf

标签: excel vba pdf


【解决方案1】:

我认为脚本没有错误。 请检查以下几点。

  1. 检查“表格”、“单元格”的地址
  2. “C2”的检查值(如预期的那样,最有可能) 像这样的“C2”值 C:\Users\aaa\Desktop\KR01.pdf

请检查一下。

【讨论】:

  • 嗨,是的,“C2”的值是 C:\Users\Renee Arianne\Desktop\Desktop - Filled CIS\CIS_2016 v5filled.pdf
  • 我注意到问题是 excel 添加了 ?到路径 (?C:\Users\Renee Arianne\Desktop\Desktop - Filled CIS\CIS_2016 v5filled.pdf),而不是直接到 c:/。你知道如何消除这种情况吗?
【解决方案2】:

我只是用这种迂回的方式打开pdf...

''' 子 OpenCIS()

Sheets("Paths").Select
Range("C3").Select
Selection.Copy

Dim x As Variant
Dim Path As String

' Set the Path variable equal to the path of your program's installation
Path = Sheets("Paths").Range("C2")

x = Shell(Path, vbNormalFocus)

Application.Wait Now + 0.00002
Application.SendKeys "^{o}", True

Application.Wait Now + 0.00002
Application.SendKeys "^{v}", True
Application.SendKeys "{HOME}", True
Application.SendKeys "{DEL}", True 'deletes the ? that appears before the path
Application.SendKeys "{ENTER}", True

结束子 ''' 我不知道为什么路径显示为 ?C:\Users\Renee Arianne\Desktop\Desktop - Filled CIS\CIS_2016 v5filled.pdf。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多