Ах, да, мне пришлось самому заняться этим вопросом.Поскольку эти компоненты запускаются ПОСЛЕ открытия книги (и после события Workbook_Open()
), вам необходимо запустить код при закрытии книги .
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Saved = True
End Sub
Должно бытьпомещается в модуле кода ThisWorkbook
.
Чтобы случайно не не сохранить книгу, когда вы фактически обновляете ее, вы можете попробовать установить свой собственный флаг глобальной переменной - который должен быть расположен встандартный модуль и имеет область действия Public
.После этого вы можете использовать событие Workbook_SheetChange
для установки этого флага, когда вы фактически изменяете любое содержимое в рабочей книге:
Стандартный модуль: Добавить флаг публикации
Public bPromptSave as Boolean
Модуль рабочей книги: обработчики событий
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
bPromptSave = True
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
if not bPromptSave then ThisWorkbook.Saved = True
End Sub