将数据导出到Excel模板但以不同的名称保存

时间:2014-04-29 20:33:00

标签: access-vba

我能够使用DoCmd.TransferSpreadsheet将数据从Access导出到Excel,但是,我希望能够将数据传输到Excel模板(例如Tasking.xls)中的特定工作表中,然后将其保存在不同的名称(例如Tasking 20140429.xls)。 Excel模板中的其他工作表包含枢轴等,因此在此过程中需要更新。 Excel模板应该关闭并保持原始格式。

此过程将每周进行一次,因此日期必须相应更改。

2 个答案:

答案 0 :(得分:0)

您无法使用DoCmd.TransferSpreadsheet直接写入Tasking.xls。

我要在Tasking.xls中编写一个宏,它读取您使用DoCmd.TransferSpreadsheet导出的XLS文件,并相应地更新数据透视表和其他工作表;或者我会在你的数据库中写一个类似的宏。

答案 1 :(得分:0)

我用它将数据传输到Excel中的模板:

FileCopy "\\1dc.com\common\OMA_COMMON1\HRDEX\Corporate Reporting\Spans and Layers\Spans & Layers MASTER_TEMPLATE.xlsb", _
"\\1dc.com\common\OMA_COMMON1\HRDEX\Corporate Reporting\Spans and Layers\Spans & Layers MASTER_" & Format(Date, "yyyy_mm_dd") & ".xlsb"

xlsxDestinationWorkbook = "\\1dc.com\common\OMA_COMMON1\HRDEX\Corporate Reporting\Spans and Layers\Spans & Layers MASTER_" & Format(Date, "yyyy_mm_dd") & ".xlsb"

DoCmd.TransferSpreadsheet acExport, , "QRY_HEADCOUNT_OA_DETAIL", xlsxDestinationWorkbook, False, "Headcount Detail"

我遇到的一个问题是创建了一个新选项卡,其名称与我要导入的选项卡名称相同,并调用表“Headcount Detail1”。我通过以下步骤解决了这个问题:

  1. 格式化新tab1完全符合我的要求
  2. 选择选项卡上的数据,并清除内容(不要删除它)
  3. 删除我在模板中创建的原始标签
  4. 将tab1重命名为我刚删除的标签名称
  5. 保存模板