Я знаю, что раньше видел ссылки на этот вопрос, но я попробовал несколько предложений, и я все еще получаю ошибку. У меня есть книга, которая собирает данные из другой книги и создает отчет. Затем я хочу создать новую книгу, скопировать отчетную информацию в новую книгу, сохранить новую книгу и закрыть ее, а затем перейти к следующему отчету. Он должен делать это примерно 10 раз. В части моего кода, где я скопировать и вставить листы, я получаю сообщение об ошибкеОшибка Excel VBA Automation: вызванный объект отключился от своих клиентов
Error -2147417848 Automation error The object invoked has disconnected from its clients
Я проверил другие проводки об этой ошибке, и попробовал предложенные решения без каких-либо результатов. Интересно то, что иногда он будет делать это через 5 циклов кода до разрыва, иногда только 2. Единственное постоянство в том, что она всегда ломается в том же месте
fromBook.Sheets("Report").Copy Before:=newBook.Sheets("Sheet1")
У меня есть вариант Explicit в верхней части модуль, и я проверил, чтобы в нем не было никаких глобалов внутри субблока. Это, как говорится, вполне возможно, я что-то упустил. Я также поставил «таймер» в какой-то момент, чтобы убедиться, что листы excel не перешагивают друг друга.
Я действительно могу воспользоваться помощью!
Вот код моего субмарины:
Sub CreateAndSave(ByRef Reg As Integer, ByVal j As Integer)
Dim fromBook As Workbook
Dim fromSheet As Worksheet
Dim newBook As Workbook
Dim fileExists As Boolean
Dim i As Integer
Dim Holder As Integer
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set fromBook = Application.Workbooks("Region_Audit_Report")
Set newBook = Workbooks.Add
With newBook
.SaveAs Filename:="G:\DataTeam\ExcelDev\Audit Report\Region Workbooks\Region" & Reg & " " & Month(Date) & "-" & Day(Date) & "-" & Year(Date) & ".xlsx" _
, FileFormat:=xlOpenXMLWorkbook
End With
Set newBook = Application.Workbooks("Region" & Reg & " " & Month(Date) & "-" & Day(Date) & "-" & Year(Date) & ".xlsx")
fromBook.Sheets("Report").Copy Before:=newBook.Sheets("Sheet1")
fromBook.Sheets("MonthData").Copy After:=newBook.Sheets("Report")
newBook.Sheets("MonthData").Range("A1") = "Month"
newBook.Sheets("MonthData").Range("B1") = "Store#"
newBook.Sheets("MonthData").Range("C1") = "District"
newBook.Sheets("MonthData").Range("D1") = "Region"
newBook.Sheets("MonthData").Range("E1") = "Due Date"
newBook.Sheets("MonthData").Range("F1") = "Comp Date"
newBook.Sheets("MonthData").Range("G1") = "# of Errors"
newBook.Sheets("MonthData").Range("H1") = "Late?"
newBook.Sheets("MonthData").Range("I1") = "Complete?"
newBook.Sheets("MonthData").Range("A1:I1").Interior.ColorIndex = 43
newBook.Save
newBook.Close
Application.DisplayAlerts = True
End Sub
Попробуйте отключить вычисления в верхней части вашего макроса. Application.Calculation = xlCalculationManual (затем включить его снова в конце) ((у меня была аналогичная проблема, и это исправлено) – Sam
Я пробовал. Он все еще разбился в том же месте. – William