2017-03-23 81 views
0

我正在使用Recordset通过循环Excel对象并创建一个新的Excel每次我打开它时将Access窗体中的5个查询导出到Excel。最后,当我想突出第一张时,它会抛出一个错误号:1004访问Excel导出

<code> 
'Once the loop ends 
xlWorkbook.Sheets("xlsheet1").Select 
xlSheet.Range("A3").Select 
</Code> 

But when I select the last sheet which is by default highlighted I don't get the error. 

<code> 
'Once the loop ends 
xlWorkbook.Sheets("xlsheet5").Select 
xlSheet.Range("A3").Select 
</Code> 

Can someone help me with this. 

Thanks in Advance. 
+0

您每次都在创建一个新的工作簿。第五个工作簿没有第一个工作簿中的工作表。你可以运行一个'xlWorkbook(1到5)'的数组。 – user3819867

+0

另外,请使用'xlWorkbook.WorkSheets'。 – Gustav

回答

0

它就这么简单。

Private Sub ExportExcel() 
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "your_query", "C:\your_path_here\your_excel_file.xlsx", True 
End Sub 

这里是“DoCmd.TransferSpreadsheet acExport”函数的参数的屏幕截图:

enter image description here

所以,下到最后一个参数是表名称。看到这个更多的信息。

http://access-excel.tips/access-vba-cocmd-transferspreadsheet/

最后,这样的事情应该为你工作。

选项比较数据库

Private Sub Command0_Click() 

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel10, "Query1", _ 
"C:\Users\your_path\access_export.xlsx", True, "Query1" 
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel10, "Query2", _ 
"C:\Users\your_path\access_export.xlsx", True, "Query2" 

End Sub 

,因为它锁定了那么紧,我不能我的工作机器上测试,我可以勉强做任何工作都没有。

+0

这将适用于单个查询的单个电子表格,但在我的情况下,我在一个工作簿中创建了多个查询的多个工作表。 –