Excel / VBA从ThieWorkbook.Name中删除文本

时间:2016-01-14 22:09:13

标签: excel vba excel-vba

我正在尝试通过使用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

2 个答案:

答案 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”)