CreateObject(" Excel.Application")实例的行为与" normal"不同。 (点击)实例

时间:2016-02-09 17:26:04

标签: excel vba instance

如果我通过双击Excel文件打开Excel,然后使用VBA打开MyExcelFile并运行MyMacro,事情就好了。但是,如果我使用VBA使用CreateObject创建一个新的Excel实例,并使用VBA打开MyExcelFile并运行MyMacro,则第三方加载项我无法控制不同的行为(错误)。

我想知道是否有可以控制的Excel实例的设置并且应该明确设置?当我看到这个时,我非常兴奋,但它并没有解决我的问题: "New" Excel.Application vs Excel.Application

通过点击打开Excel是否会从CreateObject启动不同的设置(" Excel.Application")?也许不同的工作目录或什么?

总之,对于我的第三方AddIn:

使用:

Workbooks.Open("MyExcelFile")
Application.Run "MyExcelFile!MyMacro"

不起作用:

Dim ObjXL 
Set objXL = CreateObject("Excel.Application")
objXL.Workbooks.Open("MyExcelFile")
objXL.Application.Run "MyExcelFile!MyMacro"

在MyMacro中,我加载了AddIn:

Dim success as Boolean
...
success = False
success = Application.RegisterXLL("PathToAddIn_x64.xll")
If Not (success) Then
    Exit Sub
End If
success = Application.RegisterXLL("PathToOtherAddIn_x64.xll")
If Not (success) Then
    Exit Sub
End If

1 个答案:

答案 0 :(得分:0)

通过自动化创建Excel实例时,加载项不会自动加载。

您需要使用VBA加载任何所需的项目。

请参阅 - support.microsoft.com/en-us/kb/213489