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 - 从 MS Access 将列名保存到电子表格
如何使用文件对话框将文件路径保存在字符串中,使用 Access VBA?