我正在尝试通过使用marco保存excel文件的副本,但在保存时修改当前文件名后的文本。我有一个可行的宏,但它在我可以修改文本之前将文件扩展名添加到文件名中。
EG-我的文件被命名为“MyCurrentFile.xlsm”,当我保存它时会添加日期,但保留名称为“MyCurrentFile.xlsm01-14-16.xlsm”。
我可以以某种方式删除第一个.xlsm吗?
代码:
Sub Save_With_Todays_Date()
'
' Save_With_Todays_Date Macro
' Save a copy of the workbook with todays date at the end.
ThisWorkbook.SaveCopyAs _
Filename:=ThisWorkbook.Path & "\" & _
ThisWorkbook.Name & _
Format(Date, "mm-dd-yy") & ".xlsm"
End Sub
答案 0 :(得分:1)
您可以使用Workbook.FullName property并解析扩展程序。
Dim fpfn as String
fpfn = ThisWorkbook.FullName
ThisWorkbook.SaveCopyAs _
Filename:=Left(fpfn, InStrRev(fpfn, Chr(46)) - 1) & Format(Date, "mm-dd-yy"), _
FileFormat:=xlOpenXMLWorkbookMacroEnabled
我建议您将扩展程序从Workbook.SaveAs method移开,让XlFileFormat Enumeration指定正确的扩展名。对扩展名进行硬编码会降低功能,并可能导致将不正确的扩展应用于SaveAs。
答案 1 :(得分:0)
ThisWorkbook.Name = Replace(ThisWorkbook.Name,“。xlsm”,Format(Date,“mm-dd-yy”)&“.xlsm”)