В настоящее время в Excel 2010, когда я пытаюсь сохранить книгу, созданную мной, в виде файла .xlsx, но добавив в нее функцию или подпрограмму VBA, Excel выдает запрос (в обратном порядке), хочу ли я изменить его. в файл .xlsm. Для меня это не было бы проблемой, если бы ответом на этот вопрос по умолчанию было «да, я бы предпочел, чтобы не вся работа по программированию, которую я выполнял, работая над этим файлом, была удалена, потому что я сохранил», но вам нужно активно нажать или перейдите к кнопке "Нет", иначе она будет сохранена как файл .xlsx, и вы потеряете все свои модули.

Это одна из немногих ситуаций, с которыми я столкнулся, когда по умолчанию выбрано удаление данных, а не их сохранение. Я знаю, что тот факт, что я потерял часть этой работы, в основном является моей ошибкой, и я должен быть более осторожным, но мне бы очень хотелось узнать, могу ли я отключить это сообщение или каким-либо образом изменить настройки по умолчанию.

2 ответа2

1

Вы можете, но это грязно и опасно.

  1. Разрешить VBA для чтения / записи VBA (Файл> Параметры> Центр управления безопасностью> Настройки центра управления безопасностью> Настройки макроса> Доверительный доступ к объектной модели проекта VBA)
  2. Создайте личную книгу макросов (если у вас ее еще нет)
  3. В объекте ThisWorkbook для вашей личной книги макросов используйте событие Workbook_Open чтобы сопоставить Ctrl+S с каким-либо другим макросом. (Это будет что-то вроде Application.OnKey "^s", "saveAsMacroIfMacrosExist")
  4. Используйте событие Workbook_BeforeClose чтобы выключить его снова (Application.OnKey "^s")
  5. Иди напиши эту подпрограмму - не функцию - в модуле в личной рабочей тетради макроса. (Это остается в качестве упражнения для читателя , но я нашел фрагмент кода здесь , что я не проверял , но должен проверить , имеет ли учебное пособие макросы в нем.)
  6. Используйте Ctrl+S для сохранения файлов вместо панели инструментов или Файл> Сохранить.

Ключевой момент: для этого необходимо, чтобы вы постоянно разрешали доступ к объектной модели проекта VBA, что, как правило, является плохой идеей.

0

Вы не можете изменить это на уровне рабочей книги.

Однако вы можете разрешить Excel всегда включать все макросы по умолчанию.

  1. Нажмите Файл> Параметры.
  2. Нажмите «Центр управления безопасностью» и «Настройки центра управления безопасностью».
  3. Нажмите «Настройки макроса» и включите все макросы.

Это в документации

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .