我们正在 Access 2007 中运行 VBA 并尝试创建 Excel 2007 电子表格。我们使用以下格式:
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "Table/Query Name Here", "FileNameHere".
as
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "DimWebSample_Final", gsExportFilePath & gsExportFileNameBody & "_" & Month(gdDate) & Day(gdDate) & Year(gdDate) & "_" & gsDatasetExportFileSuffix(giDatasetID) & ".xls", True
我的电脑上有 Excel 2007,但根据 Access 2007 帮助,使用 acSpreadsheetTypeExcel9 会创建 Excel 87 或 2000 电子表格。这就是我们得到的结果。帮助没有列出另一个用于 2007 结果的 acSpreadsheetTypeExcelnn 常量。
我怎样才能让它创建一个 Excel2007电子表格?
答案1
Excel 2007 引入两种新格式 xlsb 和 xlsx。因此,您必须选择其中一种acSpreadsheetTypeExcel12
,或者acSpreadsheetTypeExcel12Xml
如果您的文件扩展名与类型不匹配,则 Excel 在打开它时会发出警告,因此您还应确保您的扩展名正确。
DoCmd.TransferSpreadsheet acExport,acSpreadsheetTypeExcel12, _
"Table1", _
"Table1.xlsb"
或者
DoCmd.TransferSpreadsheet acExport,acSpreadsheetTypeExcel12Xml, _
"Table1", _
"Table1.xlsx"
答案2
打开 xlsx 文件时显示以下消息
found unreadable content in 'Table1.xlsx'
Yes
单击修复文件按钮后,显示以下消息
Repaired Records: Cell information from /xl/worksheets/sheet1.xml part
什么发生了什么?如何我可以阻止这件事吗?