想知道是否有人遇到过这个问题。我正在使用Access 2013数据库生成一些报告。这些报告需要导出到Excel文件中。我在VBA中使用
执行此操作DoCmd.OutputTo acOutputReport, "ReportName", acFormatXLS, "fileName.xls"
创建了文件,但是,它们的内容并不像预期的那样,特别是与通过运行内置Access获得的XLSX文件进行比较时。 "外部数据" - >"导出到Excel电子表格"功能。
例如,在其中一个文件中,通过运行报告的行源查询获得的表的行不会前进,导致同一行的多次重复。在另一个格式是错误的
再次,使用Access内置"导出到Excel"功能,结果是正确的
问题:是否有另一种将报告导出到Excel的方法?我做错了吗?
谢谢!
编辑:只是为了澄清:格式化只是次要问题。数据本身保存错误。主要问题是从某一行开始,其余行只是该行的副本,它们不会前进。
答案 0 :(得分:0)
没有"好"不幸的是,在Access中这样做的方法。您可以将其导出为PDF并使其看起来像Access中的报表,或者您可以使用acOutputReport导出它,然后运行一些代码以在Excel中重新格式化它。
DoCmd.OutputTo acOutputReport, "ReportName", acFormatXLS, "fileName.xls"
Call ModifyExportedExcelFileFormats("filename.xls", "SheetName")
然后:
Public Sub ModifyExportedExcelFileFormats(sFile As String, sSheet As String)
On Error GoTo Proc_Error
Dim xlApp As Object
Dim xlSheet As Object
Set xlApp = CreateObject("Excel.Application")
Set xlSheet = xlApp.Workbooks.Open(sFile).Sheets(1)
With xlApp
.Application.Sheets(sSheet).Select
.Application.Rows("1:1").Select
.Application.Selection.Font.Bold = True
.Application.range("A1").Select
.Application.Selection.AutoFilter
.Application.Cells.Select
.Application.Selection.Columns.AutoFit
.Application.range("A1").Select
.Application.Activeworkbook.Save
.Application.Activeworkbook.Close
.Quit
End With
Exit_Proc:
Set xlApp = Nothing
Set xlSheet = Nothing
Exit Sub