Выглядит так, как будто объект, на который вы ссылаетесь, не зарегистрирован в системе. Я знаю, что вы сказали, что он установлен, но это не обязательно означает, что он зарегистрирован. Чтобы подтвердить это, найдите progID, который вы использовали в своем реестре.
Пример для этого кода:
set objFSO = CreateObject("Scripting.FileSystemObject")
Я бы искал Scripting.FileSystemObject
в реестре. Тогда я бы посмотрел на ключ реестра выше найденного значения, для значения InProcServer32
. Это даст вам путь к файлу ActiveX, из которого он был зарегистрирован (для Scripting.FileSystemObject
это файл "c: \ windows \ system32 \ scrrun.dll").
Если вы не можете найти свой progID в реестре, значит, он не зарегистрирован в вашей системе, что является вашей проблемой. Если он не зарегистрирован, вам нужно выяснить, какой файл его регистрирует (обычно это .ocx или .dll в том же пути к папке вашего стороннего приложения), а затем зарегистрировать эти файлы. Вот команда для регистрации файла:
regsvr32 /i "c:\windows\system32\scrrun.dll"
Даже если вы найдете значение progID в реестре и оно ссылается на файл, который присутствует в вашей системе, вы все равно можете попробовать перерегистрировать файл. Я обнаружил, что иногда где-то что-то нарушалось при регистрации, и было проще перерегистрировать файлы, чем исправлять проблему.