我正在编写一个宏,它允许用户将 PDF 插入到工作表中。问题是不同的人有不同版本的 Adobe。此代码适用于我的机器:
ActiveSheet.OLEObjects.Add(ClassType:="Acrobat.Document.DC", Link:=False, DisplayAsIcon:=False).Activate
Run Code Online (Sandbox Code Playgroud)
但是该代码会在其他人的机器上产生错误,因为他需要这个:
ActiveSheet.OLEObjects.Add(ClassType:="AcroExch.Document.DC", Link:=False, DisplayAsIcon:=False).Activate
Run Code Online (Sandbox Code Playgroud)
注意 ClassType 是不同的。有没有办法检查 ClassType 是否存在?我想做这样的事情:
If Exists(ClassType("Acrobat.Document.DC")) Then
ActiveSheet.OLEObjects.Add(ClassType:="Acrobat.Document.DC", Link:=False, DisplayAsIcon:=False).Activate
Else
ActiveSheet.OLEObjects.Add(ClassType:="AcroExch.Document.DC", Link:=False, DisplayAsIcon:=False).Activate
End If
Run Code Online (Sandbox Code Playgroud)
注意:我可以通过使用 On Resume Error Next 来强制执行此操作,但这似乎不是最干净的方法。