Excel Macro VBA以当前文件名保存并附加日期

时间:2018-08-29 11:55:27

标签: excel excel-vba

我的问题与已经问过的许多问题类似,但是所有解决方案都不适合我。

我有几个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

我的直觉是,我定义变量或将其放入保存指令的方式都是错误的。

我很高兴提供有关解决方法的提示。

1 个答案:

答案 0 :(得分: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")  

这会在日期格式中添加多余的空间。