使用Access VBA获取表中的行数而不使用Excel引用

我正在尝试从MS Access编辑Excel文件,而不使用Excel作为参考。 我在这个问题中find了一个解决这个问题的答案。 我不使用对Excel的引用,而是使用Objects。 这似乎大部分工作,但我没有得到所有我需要从Excel中的function,以计算表上的行。 我的代码片段如下:

Dim xlBook As Object Dim xlApp As Object Dim xlSht As Object Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Open("C:\Some\Location.xlsx") Set xlSht = xlBook.Sheets("SomeSheet") tableRows = xlSht.Cells(xlSht.Rows.Count, 2).End(xlUp).Row 

我在tableRows = xlSht...行上得到一个错误:

 Run-time error '1004': Application-defined or object-defined error 

我已经尝试了很多不同的方法来解决这个问题,例如重写行,更改工作表名称。 我似乎无法find这种情况下的任何文档。 我会很感激任何帮助。

没有对Exceltypes库的引用,Access VBA xlUp知道名为常量xlUp的Excel。

您可以避免提供常量值-4162而不是常量名的错误。 或者在你的VBA代码中定义常量…

 Const xlUp As Long = -4162 

如@cboden build议 ,在代码模块的声明部分包含Option Explicit 。 然后,当你从VB编辑器的主菜单中运行Debug-> Compile时,它会提醒你任何类似的问题与无法识别的名称。