excelmacros运行,但会导致运行时错误“32809”应用程序定义或对象定义的错误

我已经使用这个macros好几年了,最近和它关联的macrosbutton已经停止执行代码了。 但是,我可以通过从开发人员选项卡的macros列表中select它来运行macros。 这样做的工作,但代码打破到最后,导致运行时错误“32809”应用程序定义或对象定义的错误。 奇怪的是代码工作正常,我的同事坐在我旁边使用相同的文件。

下面是在这一行中向底部突出的代码示例:表格(“Front”)。select

我已经在很多论坛上search过这个问题,并试图按照build议删除* .exd文件,但这并不能解决问题。 任何帮助,这是非常感谢。

码:

Sub Import() Dim i As Integer Application.ScreenUpdating = False Sheets("Control").Visible = True Sheets("DataDump").Visible = True If Weekday(Date) = 2 Then COB = Date Else COB = Date - 1 End If Range("dc_COB_Current").Value = COB Application.Calculation = xlCalculationManual Dim xTime() As Date Application.GoTo "dd_Control" Set xRange = Range(Range("dd_Control"), Cells(Range("dd_Control").End(xlDown).Row, Range("dd_Control").End(xlToRight).Column)) EmptyRpts = 0 ReDim Preserve cn(1 To xRange.Rows.Count) ReDim Preserve rs(1 To xRange.Rows.Count) ReDim Preserve xTime(1 To xRange.Rows.Count) For i = 1 To xRange.Rows.Count If xRange(i, 2) = "Y" Then cnOpen (i) If xRange(i, 5).Value <> "ALL" Then xRange(i, 8).Value = Get_Sql(xRange(i, 5), xRange(i, 6), xRange(i, 7)) Else xRange.Worksheet.Calculate End If xTime(i) = Now rs(i).Open xRange(i, 8).Value, cn(i), adOpenForwardOnly, , adAsyncExecute End If Next TotState = 1 Do Until TotState = 0 TotState = 0 For i = 1 To xRange.Rows.Count Select Case rs(i).STATE Case Is = ObjectStateEnum.adStateClosed '0 Case Is = ObjectStateEnum.adStateConnecting '2 Case Is = ObjectStateEnum.adStateExecuting '4 Case Is = ObjectStateEnum.adStateOpen '1 xRange(i, 9).Value = (Now - xTime(i)) * 24 * 60 * 60 DataDrop i, xRange(i, 4) rs(i).Close cn(i).Close End Select TotState = TotState + rs(i).STATE Next Loop Application.Calculation = xlCalculationAutomatic Sheets("Front").Select 'Sheets("Control").Visible = xlSheetVeryHidden 'Sheets("DataDump").Visible = xlSheetVeryHidden Application.ScreenUpdating = False End Sub 

我有这个错误,并通过安装KB2553154解决。