Я хотел бы написать макрос для цикла по всем книгам Excel (в нескольких экземплярах), распечатать активный лист во всех книгах и закрыть все экземпляры Excel.
Код следующий:
Dim xl As Excel.Application
Set xl = GetObject(, "Excel.Application")
If xl Is Nothing Then
msgbox "Unable to set xl"
Exit Sub
End If
Dim wb As Excel.Workbook
Dim loopCount As Integer
loopCount = 0
Do Until xl Is Nothing
loopCount = loopCount + 1
For Each wb In xl.Workbooks
wb.ActiveSheet.PrintOut
wb.Saved = True
Next
xl.Quit
If loopCount > 30 Then
msgbox "Infinite loop"
Exit Sub
End If
Set xl = GetObject(, "Excel.Application")
Loop
msgbox "Ended successfully"
Проблема в том, что закрывается только одно приложение, а затем макрос завершается в бесконечном цикле. Зачем? Я пытался сделать это несколькими способами, всегда заканчивая бесконечным циклом.
Большое спасибо за ваши идеи!