CreateObject("Excel.Application") и установить надстройки
Потратив последние 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 ответа
Таким образом, мне удалось заставить это работать с несколькими попытками, основанными на информации, предоставленной выше с заключительным кодом ниже
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"
Спасибо всем за вашу помощь - это, казалось, заняло некоторое время для чего-то довольно простого
При использовании CreateObject надстройки Excel по умолчанию недоступны:
Так что постарайтесь:
Set Excel = CreateObject("Excel.Application")
Excel.Visible = True
Excel.Workbooks.Open ("Path\To\QzData Excel Addin.xlam")
AddIns("QzData Excel Addin").Installed = True