Используя VB6 для автоматизации Excel, у меня есть этот код, который хорошо работал уже 5 лет. Он в основном выполняет итерации с помощью надстроек, и если он обнаруживает какой-то один, он выдает сообщение пользователю.Ошибка автоматизации Excel # 1004 Метод '~' объекта '~' не удалось
Public xlapp As Excel.Application
Set xlapp = GetObject(, "Excel.Application")
Dim CurrAddin As Office.COMAddIn
For Each CurrAddin In xlApp.COMAddIns
2 LogMe "==>COM Add-In: " & CurrAddin.Description
'detect the PowerPivot add-in
3 If CurrAddin.Description = "PowerPivot for Excel" And CurrAddin.progID = "Microsoft.AnalysisServices.Modeler.FieldList" Then
4 LogMe "==>COM Add-In 'PowerPivot for Excel is set to load=" & CurrAddin.Connect
5 If CurrAddin.Connect = True Then
6 MsgBox "The PowerPivot Add-in for Excel is installed and set to load.", vbExclamation
End If
End If
9 Next CurrAddin
Error in MyAddInEnumerator
1004
Method '~' of object '~' failed
Line: 2
После ввода в уловитель ошибок в этой процедуре отладки говорит, что это происходит на линии 2. Интерактивная отладка показывает, что это на самом деле в строке выше. CurrAddin, похоже, уже инициализирован, поэтому проблема связана с xlApp.COMAddIns.
У меня есть это приложение, работающее на многих машинах с той же версией 32-разрядного Excel 2010. Эти машины запускают Win7x86 и Win7x64, и все, кроме одного, работают нормально, без ошибок. Я просто не могу понять, почему эта одна машина бомбит при использовании объекта «COMAddIns».
Ссылки содержатся в приложении VB6, которое затем скомпилировано в EXE. Все запускают приложение с сервера и таким образом касаются одного и того же. Если вы не имеете в виду что-то еще. – sinDizzy
Я вижу. Проверьте это, возможно, это поможет: https://support.microsoft.com/en-us/kb/178510 – ib11
Да, эта статья плюс около 10 других. Это не объясняет, почему он работает на 15 других машинах, имеющих одну и ту же версию Excel. Плюс я устанавливаю переменную xlapp только один раз как глобальную переменную, и все переменные кажутся полностью квалифицированными. Но позвольте мне снова размыть мой код. – sinDizzy