У меня есть «мастер» макет расписания, который пользователи открывают и завершают. По завершении я заставляю макрос (в этой книге) запускать и переименовывать мастер в имя файла, хранящегося в имени сохранения области.Макро работает только один раз
Это работает в первый раз, когда пользователь открывает Excel, редактирует и закрывает книгу. Однако, если пользователь во второй раз открывает «главный» расписание, завершает другой расписание и закрывает, не закрывая Excel между ними, тогда макрос не запускается.
Я подробно искал, есть ли какая-то «глобальная переменная», которую мне нужно сбросить, но без радости.
Вот код. Любой совет будет принят во внимание.
Private Sub Workbook_BeforeClose(SaveAsUI As Boolean)
If Not SaveAsUI Then
Cancel = True
Application.EnableEvents = False
MSG1 = MsgBox("This File will be saved as....... " & Sheets("Timesheet").Range("savename").Value & ".xlsm", vbOKOnly, "Confirm")
Me.SaveAs Filename:=ThisWorkbook.Path & "\" & Sheets("Timesheet").Range("savename").Value & ".xlsm"
ActiveWorkbook.Close False
Application.EnableEvents = True
End If
End Sub
Быстрый вопрос ... вы уверены, что ваш окончательный Application.EnableEvents = True выполняется ... Я думаю, что закрытие книги, прекратит выполнение последней строки ... Может быть, постарайтесь поставить ее перед закрытием. –
Я переехал Application.Events перед ActiveWorkbook.Close, как вы предлагаете, и который разрешил многоликую работу макроса, большое спасибо. Он ввел небольшую дополнительную проблему в том, что MsgBox теперь выпущен дважды, что я буду изучать. Еще раз спасибо. – Bob