我的问题与已经问过的许多问题类似,但是所有解决方案都不适合我。
我有几个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 。
我的直觉是,我定义变量或将其放入保存指令的方式都是错误的。
我很高兴提供有关解决方法的提示。
答案 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")
这会在日期格式中添加多余的空间。