Excel自动化错误#1004对象'〜'的方法'〜'失败
使用VB6做一些Excel自动化我有这个代码在过去5年以上运作良好。 它基本上遍历加载项,如果它检测到一个特定的一个,然后它发出一个消息给用户。
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
在这个例程中放置一个错误捕获器之后,debugging表明它发生在第2行。交互式debugging显示这真的在上面的行中。 CurrAddin似乎已经初始化,所以问题是与xlApp.COMAddIns。
我有许多机器运行在32位Excel 2010的同一版本上的这个应用程序。这些机器运行Win7x86和Win7x64,除了一个运行良好,没有错误。 我只是不知道为什么这一台机器轰炸使用对象“COMAddIns”。
尝试在访问对象之前testing该对象:
For Each CurrAddin In xlApp.COMAddIns 'Add this line below and the End If If Not IsNull(CurrAddin) Then LogMe "==>COM Add-In: " & CurrAddin.Description 'detect the PowerPivot add-in If CurrAddin.Description = "PowerPivot for Excel" And CurrAddin.progID = "Microsoft.AnalysisServices.Modeler.FieldList" Then LogMe "==>COM Add-In 'PowerPivot for Excel is set to load=" & CurrAddin.Connect If CurrAddin.Connect = True Then MsgBox "The PowerPivot Add-in for Excel is installed and set to load.", vbExclamation End If End If End If Next CurrAddin
空引用或未声明的对象可能是1004错误的原因,正如在其他一些SO文章中所述:
VBA Excel:运行时错误'1004'object'_Worksheet'faile的方法'范围'
破解Excel VBAmacros运行时错误'1004':对象'_Global'的方法'范围'失败
object'_Global的错误'1004'方法'范围'失败
HTH。 这可能仍然会检测到你有加载项。 否则,这可能是一个重新安装问题,在这里: http : //www.xtremevbtalk.com/996711-post4.html 。