因此,我正在使用XLTM文件,並且我希望用戶確保它們保存爲XLSM。當他們點擊「保存」時,這工作正常,但我發現當他們點擊「另存爲」時,該文件保存爲「* .xlsm.xlsm」。如果確保用戶保存爲XLSM,同時保留文件名爲「filename.xlsm」而不是「filename.xlsm.xlsm」,我有點遺憾。強制保存爲XLSM,同時保持文件結構
'Action makes sure the user saves as XLSM file type.
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim FileNameVal As String
If SaveAsUI Then
FileNameVal = Application.GetSaveAsFilename(, "Excel Macro-Enabled Workbook (*.xlsm), *.xlsm")
Cancel = True
If FileNameVal = "False" Then 'User pressed cancel
Exit Sub
End If
Application.EnableEvents = False
ThisWorkbook.SaveAs Filename:=FileNameVal & ".xlsm", FileFormat:=ThisWorkbook.FileFormat
Application.EnableEvents = True
End If
End Sub
我想問題可能在被寫入「.XLSM」:
ThisWorkbook.SaveAs Filename:=FileNameVal & ".xlsm", FileFormat:=ThisWorkbook.FileFormat
然而,如果沒有「.XLSM」寫在那裏,我找到該文件,而不是保存爲一個壞的文件後綴。 (例如,如果我的XLTM文件被稱爲Template(File001).xltm,並且用戶打開一個新的模板文件,它將另存爲Template(File001)1(相信「1」1是文件類型)。
它可能是我的代碼的結構,所以我需要如何修改它的方向。
當用戶輸入到文本框後使用調試器時,FileNameVal的值是多少? – enderland
將'FileFormat:= ThisWorkbook.FileFormat'更改爲'FileFormat:= 52'時會發生什麼? –
@SiddharthRout這個改變沒有什麼區別。 – engineerchange