Указание чего-либо должно быть сохранено как .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
не будет завершено, и ваш файл не будет сохранен.