Очень распространенная ошибка, советовать что-то конкретное – тяжело, в моем случае не помогло ничего из найденного в Интернете.
Но подсказать в каком направлении искать я пожалуй опишу.
При возникновении ошибки, есть кнопочка “Debug”, она приведет Вас в редактор Microsof Visual Besic for Application, и покажет на какой из функции происходит остановка кода, он будет выделен желтым маркером.
В моем случае это был: CreateObject(“Someobj.VarParams”) – Someobj указан для примера,там может быть любая библиотека.
Но проблема именно в том,что VBA не нашел не может создать объект из-за того,что не может найти Someobj класс, он как правило является частью какой-то из библиотек “DLL” которые должны присутствовать на ПК и быть зарегистрированные через “regsvr32“.Вам нужно найти эту билблиотеку и скопировать ее в “c:\windows\system32 ” и зарегистрировать ее в ОС при помощи команды “regsvr32 *.dll” где * – это имя вашей библиотеки.
А теперь внимание если у вас Win7 да еще и 64 битная – Вам обязательно нужно скопировать эту библиотеку, кстати ошибка может быть из-за того,что необходимая библиотека находится в “c:\windows\system32″ вместо “c:\windows\sysWoW64\”, в папку “c:\windows\sysWoW64\” и провести регистрацию из этой директории утилитой “regsvr32“, это будет выглядеть так “c:\windows\sysWoW64\regsvr32 *.dll” *.dll – это Ваша библиотека которая расположена в кроне “c:\windows\sysWoW64\” . Почему именно так? – Потому что, у Вас Windows 7 6bit и для библиотек 32-битных существует отдельная папка “c:\windows\sysWoW64\” с отдельной утилитой “regsvr32″ которая предназначена для регистрации 32-битных DLL.
Для информации 64-битные библиотеки Windows 7 располагаются в c:\windows\system32, такой вот каламбур.