尝试使用 .SaveAs VBA 函数时出现方法错误
Posted
技术标签:
【中文标题】尝试使用 .SaveAs VBA 函数时出现方法错误【英文标题】:Getting method error when trying to use .SaveAs VBA function 【发布时间】:2020-01-10 17:16:25 【问题描述】:我正在尝试让 Access 在每次程序运行时通过该程序导出我正在操作的表的副本。我在 myExcel.SaveAs 行收到以下错误:“运行时错误 '438':对象不支持此属性或方法”
我启用的参考库如下:“Visual Basic For Applications”、“Microsoft Access 16.0 Object Library”、“OLE Automation”、“Microsoft Office 16.0 Access database engine Object Library”、“Microsoft ActivceX Data Objects 6.1库”、“Microsoft Excel 16.0 对象库”。
我尝试过使用 .SaveAs 方法之前的库以及前缀的各种格式,但无济于事。
Dim myrs As DAO.Recordset ' Create a recordset to hold the data
Dim myExcel As New Excel.Application ' Create Excel with Early binding
Dim mySheet As Excel.Worksheet
Set mySheet = myExcel.Workbooks.Add(1).Worksheets(1) ' Create Workbook
Set myrs = CurrentDb.OpenRecordset("SELECT * FROM tablename") ' Define recordset
Dim i As Integer
'Add header names
For i = 0 To myrs.Fields.Count - 1
mySheet.Cells(1, i + 1).Value = myrs.Fields(i).Name
Next
Dim fname As String
fname = "Detail_Export"
Dim timestamp As Date
timestamp = Now()
Dim strTime As String
Dim strTime2 As String
timestamp = CStr(timestamp)
strTime = Replace([timestamp], ":", ".")
strTime2 = Replace([strTime], "/", ".")
fname = fname & " " & strTime2
'Add data to excel and make Excel visible
mySheet.Range("A2").CopyFromRecordset myrs
myExcel.Visible = False
myExcel.SaveAs FileName:=("C:\User\me\Database Backups\" & fname), FileFormat:=xlOpenXMLWorkbook
myrs.Close
【问题讨论】:
myExcel
是 Excel Application
对象。你不能在应用程序上SaveAs
。
还需要文件扩展名。
【参考方案1】:
myExcel
是 Excel Application
对象。 SaveAs
是 Workbook
对象的一个方法:
改变
Set mySheet = myExcel.Workbooks.Add(1).Worksheets(1) ' Create Workbook
到
Dim myWb as Excel.Workbook
Set myWb = myExcel.Workbooks.Add
Set mySheet = myWb.Worksheets(1)
现在您可以在Workbook
上SaveAs
。
【讨论】:
以上是关于尝试使用 .SaveAs VBA 函数时出现方法错误的主要内容,如果未能解决你的问题,请参考以下文章
在 Matlab 中使用 hgexport 和 saveas 时出现无效句柄错误