Сохранение несохраняемой книги (Microsoft Excel)
У Билла есть макрос «перед сохранением», который проверяет три ячейки. Если ячейки пусты, макрос останавливает пользователя от сохранения. Другими словами, они должны заполнить ячейки, прежде чем они смогут сохранить книгу.
Билл хотел бы сохранить эту книгу как шаблон, но когда он очищает три ячейки, макрос также не позволяет ему сохранить как шаблон. Он хотел бы, чтобы шаблон был «чистым», с пустыми по умолчанию тремя ячейками. Пользователи могут создать новую книгу на основе шаблона и затем (правильно) не смогут сохранить, если ячейки не будут заполнены.
Билл задается вопросом, как сохранить книгу в качестве шаблона с пустыми тремя ячейками.
На самом деле существует несколько различных подходов, которые вы можете использовать для сохранения вашего шаблона.
Первый — изменить имя вашей книги на что-нибудь довольно эзотерическое, например X27TT3W.xlsm. Затем добавьте логику в макрос «перед сохранением», проверяющий, является ли имя базовой книги X27TT3W. Если это так, то разрешите сохранение книги (или шаблона) независимо от состояния трех ячеек. После сохранения шаблона вы можете переименовать его в Windows на желаемое имя, и им можно будет поделиться со своими пользователями. Если они не угадают выбранное вами эзотерическое имя, они не смогут сохранить книгу, не убедившись, что все три ячейки заполнены.
Другой подход состоит в том, чтобы просто добавить в книгу еще один обработчик событий — тот, который выполняется при первом открытии книги — для очистки содержимого трех ячеек. Это может быть что-то простое, например:
Private Sub Workbook_Open() Sheet1.Cells(1,1).Clear Sheet1.Cells(2,1).Clear Sheet1.Cells(3,1).Clear End Sub
Этот макрос очищает ячейки A1: A3. Если вы хотите очистить другой диапазон, просто измените три строки, чтобы отразить, какие ячейки вы хотите очистить. Затем поместите что-нибудь в три ячейки (чтобы оно прошло ваше тестирование в макросе «перед сохранением») и сохраните это как шаблон.
Другой подход, который очень легко реализовать, — просто отключить события перед сохранением шаблона. Это делается не в макросе, а в окне «Немедленное» в редакторе Visual Basic. Все, что вам нужно сделать, это ввести эту единственную строку:
Application.EnableEvents = False
Немедленно сохраните книгу как шаблон, а затем введите следующую строку в окне «Непосредственно» редактора Visual Basic:
Application.EnableEvents = True
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (13547) применим к Microsoft Excel 2007, 2013, 2016, 2019 и Excel в Office 365.