Я создаю «шаблон», который наши разработчики должны заполнить, и я хочу, чтобы при его сохранении он запускал какое-то пользовательское поведение перед тем, как файл был сохранен. Есть две ячейки, которые определены формулой. Когда пользователь, о котором идет речь, сохраняет заполненный файл из шаблона в xlsx, я хочу, чтобы эти ячейки были значениями, а не формулами. (Это также означает, что я не хочу, чтобы макросы сохранялись вместе с файлом XLSX.)
Прекрасным примером является формула = TODAY (), которая, если вы сохраните файл Excel с этой формулой в ячейка 1 января 2020 г., когда она вновь откроется 1 февраля 2020 г., эта ячейка будет иметь значение 1 февраля 2020 г., а не 1 января 2020 г., когда она была создана и сохранена.
Поскольку исходный файл, который они будут открывать, является xltx, он заставит их сохранить его как xlsx или xlsm. Я хочу, чтобы шаблон (xltx) имел формулы (и макросы), но когда они сохраняют его как xlsx, он должен иметь только значения.
VB для копирования и вставки значений ячеек вместо forumlas basi c и я делал это много раз. Проблема заключается в том, что, когда я пытаюсь сохранить шаблон как измененный шаблон (xltx), событие BeforeSave запускается и изменяет ячейки обратно на значения вместо формул, разрушая всю цель. (catch-22)
Есть ли способ определить, что я сохраняю файл в формате xltx, или это мой единственный способ поставить точку останова в макросе события и "пропустить" эти строки, когда я сохранить шаблон?