VBA 将 Excel 文件从 Access 保存为 .xls

Posted

技术标签:

【中文标题】VBA 将 Excel 文件从 Access 保存为 .xls【英文标题】:VBA save Excel file as .xls from Access 【发布时间】:2016-02-27 22:20:53 【问题描述】:

您好,我必须从 Excel 文件导入 Access DB,不能重复。唯一可以做到这一点的方法是创建可以导入 Excel 数据的表,然后通过构建查询将其附加到目标表。问题是这个 Excel 文件必须是 .xls 格式,没有其他格式对我有用(不知道为什么)。我怎样才能从 Access 中做到这一点 - 不需要打开 Excel 工作簿,只需更改它的扩展文件名?这是我尝试过的(我收到错误:“对象不支持此属性或方法”)

Dim XFile As Excel.Application


Set XFile = CreateObject("Excel.Application")
XFile.Workbooks.Open "C:\Users\Mike\Desktop\Copy.xlsx", True

XcelFile.SaveAs Filename:="C:\Users\Mike\Desktop\Copy.xlsx", FileFormat:=56
XFile.Workbooks.Close

End Sub

如您所见,我需要从 .xlsx 保存,这是 Excel 2013 的默认格式。

非常感谢任何帮助!

【问题讨论】:

您的“另存为”文件是您刚刚打开的文件。您至少应该更改目的地名称,否则您肯定会遇到冲突。 见this answer。 在“SaveAs”语句中将扩展名从“.xlsx”更改为“.xls” @Porcupine911,我看不出这个答案对我的情况有什么帮助。 @user3598756,我试过了,但仍然收到同样的错误。 【参考方案1】:

感谢@Porcupine911,即使没有打开工作簿,它也能工作:)

Dim XcelFile As Excel.Application
Dim wb As Excel.Workbook

Set XcelFile = New Excel.Application

Set wb = XcelFile.Workbooks.Open("Filepath here")

wb.SaveAs Filename:="Filename here, with different destination and desirable extension", FileFormat:=56
wb.Close
Set XcelFile = Nothing

End Sub

【讨论】:

以上是关于VBA 将 Excel 文件从 Access 保存为 .xls的主要内容,如果未能解决你的问题,请参考以下文章

在访问 vba 的 excel 文件中未启用显示警报

VBA Excel - 从 MS Access 将列名保存到电子表格

如何使用文件对话框将文件路径保存在字符串中,使用 Access VBA?

使用 VBA 将数据从 Excel 导出到 Access

通过 Access 2013 VBA 编辑后无法打开 Excel 2013 文件

使用 VBA 获取 Excel 选项卡名称并复制到 Access 表