我遇到了使用DoCmd.TransferSpreadsheet
命令将表从MS Access 2010导出为Excel 2010格式的VBA代码问题。代码在Access中运行时没有错误,并且创建了文件。但是,当我尝试在Excel 2010中打开该文件时,我收到以下错误消息:
Excel无法打开文件'XXXXX.xlsx',因为文件格式或文件
扩展无效。验证文件是否已损坏
文件扩展名与文件格式匹配。
这是我用来设置然后执行导出的代码:
exportFileName = "\\network1\share$\filename_" & ".xlsx"
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12, "tablename", exportFileName, True
我在发布之前查看了一些可能的解决方案,所以我尝试了
acSpreadsheetTypeExcel12
替换为acSpreadsheetTypeExcel12Xml
acSpreadsheetTypeExcel12
替换为整数10
或9
File -> Open
对话框打开文件,而不是双击文件这些都没有解决问题。
我发现的一个解决方案如下:
exportFileName = "\\network1\share$\filename_" & ".xls"
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "tablename", exportFileName, True
其中扩展名为.xls
,电子表格类型为acSpreadsheetTypeExcel8
。我现在可以使用它,但我会感谢任何其他可能的建议。
答案 0 :(得分:0)
我最近发现了另一种可用于导出excel文件的方法。
DoCmd.OutputTo acOutputQuery, "YourTableName", acFormatXLSX, exportFileName
这应该可以正常工作