我正在尝试创建一个宏,它会定期将 Excel 中的 25,000 - 35,000 行移动到 Access 数据库中。据我了解,如果我在使用宏的人拥有不同版本的 Excel 和 Access(我碰巧使用的是 2007)的环境中工作,我最好使用后期绑定,因为它避免了不同参考的问题和版本等 - 一旦它起作用,它就会起作用(即使它更慢)。
我正在尝试让以下代码在 Excel VBA 中工作:
Sub TransferToDB()
Dim acApp As Object
ssheet = "C:\Documents and Settings\yk\Desktop\Open Invoice Summary 322 - 2012-07-17.xlsx"
ssrange = "AllData!A1:M28323"
Set acApp = CreateObject("Access.Application")
acApp.OpenCurrentDatabase ("C:\Documents and Settings\yk\Desktop\Open Invoice Summary.accdb")
acApp.Visible = True
acApp.UserControl = True
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, OpenInvoices, ssheet, True, ssrange
acApp.CloseCurrentDatabase
acApp.Quit
Set acApp = Nothing
End Sub
当宏到达 DoCmd.TransferSpreadsheet 行时,它会因错误而停止:
运行时错误 424:
所需对象
Excel 中的此例程从另一个例程调用,该例程从大型工作簿中的许多工作表中收集信息,并将其全部转储到该工作簿中名为“AllData”的工作表中。我一直在网上看到对此 DoCmd.TransferSpreadsheet 方法的引用,但我似乎找不到任何有效的剪切和粘贴代码......
- 为什么程序在那个时候总是崩溃?
- 甚至可以在不使用 ADO 或 DAO 的情况下将日期从 Excel 传输到 Access?
- 后期绑定确实可以防止问题,还是使用 ADO 更好?
谢谢 - 非常感谢您的帮助!