2016-10-06 4 views
-1
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.

+0

Лучше всего включить ваш код. –

+0

, если fileType <> .xlt? – Jbjstam

ответ

0

Любые изменения в пределах файла либо сделать его всегда сохранить как XLTM, или всегда в XLSM. Таким образом, вы хотите, чтобы флаг хранился в другом файле, который по умолчанию имеет значение false. Таким образом, если вы хотите отредактировать свой шаблон, вы можете включить его и сохранить изменения, но при нормальном использовании он будет сохраняться как .xlsm.

Смежные вопросы