问题:将 PDF 嵌入到 Excel 工作簿中。此PDF是一个反馈表,其中包含"发送到邮件收件人"按钮。如果不将其嵌入到 Excel 发送工作,当嵌入发送时会导致 Excel 崩溃。
我的想法是打开 OLEObject,暂时保存嵌入的 PDF,关闭 OLEObject,然后打开保存的 PDF,使其在 Acrobat 实例中运行。打开 OLEObject 已经可以使用:
ThisWorkbook.Sheets(SheetName).Shapes(OLE_Name).Select
Selection.Verb Verb:=xlOpen
但我正在努力解决以下步骤。怎么做?可能的其他方式?
WIN7, Office 2010, Acrobat Reader
众所周知,OLEObjects很难使用。我已经做了一些搜索,因为似乎很难相信这不受支持。 这是我第一次尝试使用 Shell
命令复制 OLE 并将其粘贴到已知目录。
但是,您无法复制/粘贴 PDF 嵌入对象,这意味着您不能使用 Shell
命令将其复制/粘贴到临时文件夹/文件路径。所以这是行不通的。
共识似乎是这实际上是不可能的;你所能做的就是打开嵌入的PDF。 看到这里,这里引用这个PDF说:
请参阅 OLE Automation 下的"AxAcroPDFLib.AxAcroPDF"部分。这些是您从阅读器中可以使用的唯一方法
而且,在这里:
你正在做的事情依赖于你知道如何与特定的类进行交互,如果你只有几种类型并且知道它们是什么,这可能是可以的,但一般来说,除非 (a) 类支持自动化和 (b) 你知道发出这个命令不起作用。
该类并不真正支持您想要的自动化类型。
可能的解决方案
使用 Acrobat 和 WinAPI
如果您安装了 Acrobat,那么我相信您可以使用 WinAPI 来获取 Acrobat 实例的 hWnd,并以这种方式控制它。我已经仔细阅读了一些文档,但我没有 Acrobat,所以我无法测试。