使用宏创建具有相同名称+日期的文件的副本

时间:2017-05-26 10:16:00

标签: excel vba excel-vba

我想将工作簿保存在具有相同名称+当前日期的其他位置。

我尝试过并且能够使用以下方法在其他位置复制文件,但名称不同:

Sub Backup()
ActiveWorkbook.SaveCopyAs "C:\Users\mani\Desktop\reference_files\AutoGenerated.xlsx"
End Sub

我没有通过向其添加当前日期来获取如何使文件名与现有文件名相同。

例如,文件名为abc.xlsx,然后我想将此文件保存在"C:\Users\mani\Desktop\reference_files\",名称为abc_26May2017.xlsx

请帮忙。

2 个答案:

答案 0 :(得分:0)

您可以使用其FullName属性获取当前工作簿名称(包括路径),并且可以使用Format函数设置日期格式。

Sub Backup()
    With ActiveWorkbook
        .SaveCopyAs Left(.FullName, InstrRev(.FullName, ".") - 1) & _
                    "_" & Format(Date(), "ddmmmyyyy") & ".xlsx"
    End With
End Sub

如果您需要使用其他路径,可以使用工作簿的Name属性:

Sub Backup()
    With ActiveWorkbook
        .SaveCopyAs "C:\Users\mani\Desktop\reference_files\" & _
                    Left(.Name, InstrRev(.Name, ".") - 1) & _
                    "_" & Format(Date(), "ddmmmyyyy") & ".xlsx"
    End With
End Sub

答案 1 :(得分:0)

这个有点简单。

$pathToFile = storage_path('app/data.xml');
return response()->file($pathToFile);