CreateObject(“ Excel.Application”)并安装插件

时间:2019-02-20 06:17:06

标签: excel vba vbscript add-in createobject

在花了最后两天的时间让它工作后,我终于与社区取得了联系。我尝试了以下代码的多种变体,包括已张贴到此处和其他站点的许多示例。为简单起见,这就是我所拥有的:

Dim Excel

Set Excel = CreateObject("Excel.Application")

Excel.Visible = True

AddIns("QzData Excel Addin").Installed = True 

基本上,我正在尝试使用脚本打开excel文件并运行宏。此宏要求我安装“ QzData Excel加载项”。为简单起见,我只是尝试使用新的excel工作表,因为我已经具有打开实际文件的正确代码。

我试图以脚本(.vbs)的形式以及在Excel VBA本身中运行以上命令,并出现“下标超出范围”错误。

2 个答案:

答案 0 :(得分:0)

使用CreateObject时,默认情况下Excel加载项不可用:

https://support.microsoft.com/en-us/help/213489/add-ins-do-not-load-when-using-the-createobject-command-in-excel

所以尝试:

Set Excel = CreateObject("Excel.Application")
Excel.Visible = True
Excel.Workbooks.Open ("Path\To\QzData Excel Addin.xlam")
AddIns("QzData Excel Addin").Installed = True 

答案 1 :(得分:0)

因此我设法根据上面提供的信息以及下面的最终代码进行了几次尝试

Set Excel = CreateObject("Excel.Application")
Excel.Visible = True
Excel.Workbooks.Open"\\xxxx\xx\xxx\xxx\xx\xxxxxxxxxx\xxxx\xxx\xxxxx\xxxxx\Workbooks\OpalToolbelt_Plex_Combined_2019_Feb.xlsm"
Excel.AddIns("QzData Excel Addin").Installed = False
Excel.AddIns("QzData Excel Addin").Installed = True 

我不得不将对象名称“ Excel”放在AddIns的前面,否则将无法正常工作。前面没有“应用程序”也没有用。

在重新安装该插件之前,我还需要卸载该插件,否则它只能工作一半时间。

根据@MacroMarc提供的链接,建议您将RegisterXLL函数用于.xll加载项。我发现我的代码可以很好地工作,但是值得一提

Excel.RegisterXLL "QzDataAddin.xll"

感谢您的帮助-这似乎需要花费一些时间才能完成