2017-04-12 136 views
1

我想创造一些VBA代码打开一个现有的Excel工作簿,查询转移到一个新的工作表并保存今天的日期和时间的文件。到目前为止,这是我的MS Access导出查询到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其中一期工程

回答

1

看起来代码好像你只需要这个转折:

ProjectPath = CurrentProject.Path 
FolderPath = "Report_Templates" 
ExportNumber = Format(Now(), "YYYYMMDD_HHMMss") 
ExportFileName = "my_report_" & ExportNumber & ".xlsx" 
TemplatePath = ProjectPath & "\" & FolderPath & "\" & ExportFileName 
+0

我不认为这是解决方案,原来是TEMPLATEPATH Excel模板文件,我想打开,并有查询远销然后另存为ExportFileName – Naz

+0

则必须打开Excel中使用自动化,并呼吁“另存为 ..”。 – Gustav

0

,一旦它被保存在模板与

NAME TemplatePath AS ExportFileName 

,或让你可以重命名文件具有新名称的文件的副本。

Dim fso As MyObject 

Set fso = VBA.CreateObject("Scripting.FileSystemObject") 
fso.CopyFile TemplatePath, ExportFileName 
+0

这里的问题是,然后修改模板文件,以便然后获取出口到任何查询将被查询... ... QUERY1 QUERY2。 – Naz

+0

你能在你的脚本的开头进行复制,然后导出查询到的副本? – TDolph