Я использую этот макрос уже много лет, и совсем недавно связанная с ним связанная с ним макрокоманда прекратила выполнение кода. Тем не менее, я могу запустить макрос, выбрав его из списка макросов на вкладке разработчика. Выполнение этого способа работает, однако код разбивается на конец и приводит к ошибке времени выполнения «32809», определяемой приложением или объектной ошибкой. Странно, что код отлично подходит для моего сотрудника, сидящего рядом со мной, используя тот же файл.excel macro run, но приводит к ошибке времени выполнения «32809», определяемой приложением или объектной ошибкой
Вот пример кода, который влезает в стороне дна на этой линии:. Sheets («Front») Выберите
Я искал этот вопрос на многих форумах и попытался удалением * .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
Похоже, что ваш лист «Front» был поврежден обновлением Microsoft KB2553154. То же самое случилось со мной с некоторыми листами, с которыми я работаю. Вероятно, вам придется заново создать лист и скопировать код. – Dave
Thank Dave, есть ли исправление к этому обновлению? Также как это может не работать для меня, но работать для кого-то другого, используя тот же файл, но на другом компьютере? –