Как сохранить файл XLSM как файл XLSX без запроса пользователя о потерянных данных? - PullRequest
4 голосов
/ 24 июня 2019

TLDR

Как сохранить файл Excel с файлом с макросами как файл Excel без файла с помощью VBA , подавив запрос о том, что целевой формат не поддерживает макросы ?


У меня есть файл xlsb (Excel 2007+ с макросами), внутри находится содержимое и кнопка, которая должна сохранить этот файл в формате xlsx (Excel 2007 БЕЗ макросов). Все идет нормально. Я буду использовать ActiveWorkbook.SaveAs FileName:=name, FileFormat=xlOpenXMLWorkbook, Password="xyz"

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

Я пробовал Application.DisplayAlerts = False и ThisWorkbook.CheckCompatibility = False. Я также записал то же действие с MacroRecorder, который также не может пропустить следующее приглашение.

Моя последняя попытка была копировать содержимое, используя ThisWorkbook.Sheets.Copy и пытаясь удалить данные VBProject. Пробовал разными способами, но кажется, что данные vb-проекта не могут быть действительно удалены. После выполнения удаления и тому подобного отладчик всегда показывает три элемента vb-project-data.

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

1 Ответ

1 голос
/ 24 июня 2019

Вы можете использовать

Thisworkbook.SaveCopyAs ([filename.xlsx]).

При этом создается копия рабочей книги без макросов и без предупреждения. Конечно, [filename.xlsx] должен быть заменен вашим собственным путем к файлу. Используйте расширение xlsx, чтобы убедиться, что вы не копируете макросы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...