我想创建一些VBA代码来打开现有的Excel工作簿,将查询传输到新工作表并使用今天的日期和时间保存文件。到目前为止,这是我的代码
Private Sub cmd_planning_report_Click()
Dim ExportNumber As String
Dim ExportFileName As String
Dim ProjectPath As String
Dim FolderPath As String
Dim FilePath As String
Dim TemplatePath As String
ProjectPath = CurrentProject.Path
FolderPath = "Report_Templates"
FilePath = "Template.xlsx"
TemplatePath = ProjectPath & "\" & FolderPath & "\" & FilePath
ExportNumber = Format(Now(), "YYYYMMDD_HHMMss")
ExportFileName = "my_report_" & ExportNumber & ".xlsx"
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "A1_Report", TemplatePath, True
End Sub
哪个有效,因为查询被导出到Template.xlsx但我希望它将文件保存为ExportFileName
答案 0 :(得分:1)
看起来你只需要这个转折:
ProjectPath = CurrentProject.Path
FolderPath = "Report_Templates"
ExportNumber = Format(Now(), "YYYYMMDD_HHMMss")
ExportFileName = "my_report_" & ExportNumber & ".xlsx"
TemplatePath = ProjectPath & "\" & FolderPath & "\" & ExportFileName
答案 1 :(得分:0)
使用
将文件保存到模板中后,可以重命名该文件NAME TemplatePath AS ExportFileName
或者使用新名称复制文件。
Dim fso As MyObject
Set fso = VBA.CreateObject("Scripting.FileSystemObject")
fso.CopyFile TemplatePath, ExportFileName