【问题标题】:Save under current file name with date attached以当前文件名保存并附上日期
【发布时间】:2019-08-11 20:15:07
【问题描述】:

我有几个 Excel 文件要保存在当前文件名下,并附有今天的日期,但在不同的文件夹中。

由于这些文件都有不同的名称,我的方法是将它们的文件名作为变量并将其用作要保存的名称。由于我想避免为每个文件编写宏,因此将所需名称放入一个单元格然后使用该值(有效)保存它的想法不是一种选择。

Sub Save_Workbook()

' Save Sheet with Current Date
' Adjust Absolute Path to Location Where to Save the Workbook

Dim FName As String

FName = ActiveWorkbook.Name

ActiveWorkbook.SaveAs ("C:\Users\ME\FOLDER1\FOLDER2\SHEETS1\SHEETS2\ FName " & Format(Now(), "DD-MM-YYYY" & ".xlsx"))

End Sub

此宏将文件保存在所需的文件夹中,并附上日期,但它不选取自定义变量FName。例如,生成的文件名是 FName 29-09-2018

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    您已在字符串中包含FName,因此它被视为文本。

    ActiveWorkbook.SaveAs ("C:\Users\ME\FOLDER1\FOLDER2\SHEETS1\SHEETS2\ FName " & Format(Now(), "DD-MM-YYYY" & ".xlsx"))  
    

    应该是

    ActiveWorkbook.SaveAs ("C:\Users\ME\FOLDER1\FOLDER2\SHEETS1\SHEETS2\" & FName & Format(Now(), "DD-MM-YYYY" & ".xlsx"))  
    

    或者您可以完全删除FName 并使用ActiveWorkbook.Name

    ActiveWorkbook.SaveAs ("C:\Users\ME\FOLDER1\FOLDER2\SHEETS1\SHEETS2\" & ActiveWorkbook.Name & Format(Now(), "DD-MM-YYYY" & ".xlsx"))
    

    您可能希望在FName 和日期之间添加一个空格。而不是在Fname 旁边包含一个额外的& " " &,您可以使用:

    Format(Now(), " DD-MM-YYYY" & ".xlsx")  
    

    这会在日期格式中添加额外的空间。

    【讨论】:

    • 谢谢,@Darren 您的解决方案有效。虽然有一个未成年人。 ActiveWorkbook.Name 包含原始文件扩展名,因此目前的结果是 Sheetname.xlsm 30-08-2018.xlsx 不完全是需要的。有没有办法从原始文件名中删除 .xlsm
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-12
    • 2012-02-25
    • 2014-02-16
    • 2014-07-04
    • 1970-01-01
    • 2013-09-01
    • 1970-01-01
    相关资源
    最近更新 更多