Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim fname As Variant, DateTime As String, myInitialFilename As String
On Error GoTo ErrorHandler
SaveAsUI = True
If SaveAsUI Then
Cancel = True 'Cancel the original SaveAs
DateTime = "_" & Format(Now(), "yyyy_mm_dd_hhmmss") '= " [yyyy_mm_dd]"
'DateTime = " [" & Format(Now(), "yyyy_mm_dd hhmm_ss") & "]" '= " [yyyy_mm_dd hhmm_ss]" (use instead if you want time in the name)
myInitialFilename = "Quote" 'EDIT THIS
'Get filename (with path) for saving
fname = Application.GetSaveAsFilename(InitialFileName:=myInitialFilename & DateTime, fileFilter:="Excel Marcro-Enabled Workbook (*.xlsm),*.xlsm")
If fname = False Then Exit Sub 'Exit if user hit Cancel
Application.EnableEvents = False 'Prevent this event from firing
ThisWorkbook.SaveAs Filename:=fname, FileFormat:=52
'52 = xlOpenXMLWorkbookMacroEnabled = xlsm (with macro's in 2007-2010)
Application.EnableEvents = True 'Re-enable events
End If
Exit Sub
ErrorHandler:
Application.EnableEvents = True
MsgBox "An error occured during save." & Err.Number, vbCritical, "Error"
End Sub`
Я написал немного кода VBA, чтобы принудительно сохранить или сохранить файл типа .xlsm, который отлично работает. Тем не менее, я не могу сохранить файл шаблона с кодом VBA в нем из-за того, что сам код вызывает форматирование .xlsm.
У меня есть шаблон, сохраненный без кода, но как только я добавляю код, очевидно, что я больше не могу сохранять как xltm, так как код подталкивает к сохранению как xslm. Ищите лучшее решение для сохранения моего шаблона!Excel 2016 VBA force save to .xlsm - Как сохранить шаблон?
Спасибо, Kathy B.
Лучше всего включить ваш код. –
, если fileType <> .xlt? – Jbjstam