Уезжаю в отпуск, стоит задача автоматизировать выполнение своих функций. В программировании на VBA я полный профан, но мне хорошо удается подбирать и комбинировать подходящие мне решения. Свои обязанности я автоматизировал частично макросами, частично через .bat и powershell Все получилось, но не могу сделать последний штрих. Закрыть файл с исходной базой перед усыпление компьютера. нашел в сети такой макрос:
Код
Sub yy()
Application.Quit
End Sub
Он крайне эффективно закрывает все файлы Excel. И запускаю я его через Powershell. Но как мне повесить его на событие открытия файла?
Так Вам что закрыть надо? Все файлы кроме того, из которого макрос запускается? Или Excel в принципе? Если первое, то попробуйте так
Код
Private Sub Workbook_Open()
Dim iWb As Workbook
On Error Resume Next
Application.DisplayAlerts = False
Application.ScreenUpdating = False
For Each iWb In Workbooks
If iWb.Name <> ThisWorkbook.Name Then
iWb.Close True 'False - закроет без сохранения
End If
Next
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Application.Quit в разных версиях Excel ведет себя по разному. Сейчас точно не помню все тонкости, но код, работающий в 2010, в 2016 работать отказался, пришлось химичить.