CreateObject («Excel.Application») и установить надстройки - PullRequest
0 голосов
/ 20 февраля 2019

Потратив последние 2 дня на то, чтобы заставить это работать, я наконец-то обратился к сообществу.Я пробовал несколько вариантов кода ниже, включая многие примеры, которые были размещены здесь и на других сайтах.Проще говоря, вот что у меня есть:

Dim Excel

Set Excel = CreateObject("Excel.Application")

Excel.Visible = True

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

По сути, я пытаюсь использовать скрипт, чтобы открыть файл Excel и запустить макрос.Этот макрос требует, чтобы у меня была установлена ​​надстройка "QzData Excel Addin".Для простоты я просто пытаюсь заставить это работать с новым листом Excel, так как у меня уже есть правильный код для открытия моего реального файла.

Я попытался запустить вышеизложенное как скрипт (.vbs) и в самом Excel VBA, и получаю ошибку «индекс вне диапазона».

Ответы [ 2 ]

0 голосов
/ 21 февраля 2019

Так что мне удалось заставить это работать с несколькими попытками на основе информации, предоставленной выше, с окончательным кодом ниже

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" перед надстройками, так какбез этого не получитсяНаличие «Приложения» впереди также не сработало.

Мне также нужно было удалить надстройку перед переустановкой, иначе она будет работать только половину времени.

По ссылке, предоставленной @MacroMarc, есть предложение использовать функцию RegisterXLL для надстроек .xll.Я обнаружил, что мой код работал нормально без, но стоит упомянуть

Excel.RegisterXLL "QzDataAddin.xll"

Спасибо всем за вашу помощь - Это, казалось, заняло некоторое время для чего-то довольно простого

0 голосов
/ 20 февраля 2019

При использовании 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 
...