Сохранение рабочей книги - PullRequest
0 голосов
/ 16 января 2020

Итак, я хочу сохранить текущую записную книжку по указанному пути с динамическим c именем на основе даты, и мой код выглядит следующим образом

Dim today As String

today = Date
today = Replace(today, "/", ".")

ActiveWorkbook.SaveAs Filename:= _
"D:\CE\PE tracker " & today & ".xlsm"

Но он возвращает ошибку -

Проекты VB и листы XLM нельзя сохранить в книге без макросов.

1 Ответ

1 голос
/ 16 января 2020

Указание чего-либо должно быть сохранено как .xlsm недостаточно для Excel, чтобы правильно распознать формат файла. Как указано @braX, формат файла является (необязательным) именованным аргументом метода SaveAs. В случае, если это отличается от текущего формата файла, это нужно будет указать, в противном случае Excel попытается сохранить его как текущий формат файла и даст расширение .xlsm только в имени файла, , что чаще всего не приводит к повреждению файла . Полный код:

Sub saveas()
Dim today As String

today = Date
today = Replace(today, "/", ".")

ActiveWorkbook.saveas Filename:="D:\CE\PE tracker " & today & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled

End Sub

Также будьте осторожны при использовании Application.Displayalerts = False, как предложено @Teamothy. Несмотря на то, что он имеет очень правильное использование, это не одно из них, использование его в приведенном выше коде отключит предупреждение без его разрешения, и в результате действие SaveAs не будет завершено, и ваш файл не будет сохранен.

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