访问2010获得Excel 2010中的最大行数

我在通过MS访问2010访问Excel 2010时遇到了问题。从访问2010,我想从我的Excel数据中获取最大行数。 这是我的代码:

Dim Xl As Excel.Application
Dim XlBook As Excel.Workbook
Dim XlSheet As Excel.Worksheet
Dim lastRow As Long, i As Integer
MySheetPath = "C:UsersmyaccountDesktopLRLVmydata.xlsx"
Set Xl = CreateObject("Excel.Application")
Set XlBook = GetObject(MySheetPath)
Xl.Visible = True
XlBook.Windows(1).Visible = True
Set XlSheet = XlBook.Worksheets(1)
With XlSheet
lastRow = .Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
End With

当我没有打开excel时,一切都很好。 但是,当我有1个或更多的Excel已打开变异“lastRow”总是给我“类型不匹配”的错误。 现在我需要知道如何解决它。 以前非常感谢你。


你的问题是对A1的无条件引用。 我也不确定为什么当你已经有一个应用程序引用时使用GetObject

Dim Xl As Excel.Application

Dim XlBook As Excel.Workbook

Dim XlSheet As Excel.Worksheet

Dim lastRow As Long, i As Integer

MySheetPath = "C:UsersmyaccountDesktopLRLVmydata.xlsx"

Set Xl = CreateObject("Excel.Application")
Xl.Visible = True
Set XlBook = XL.Workbooks.Open(MySheetPath)

XlBook.Windows(1).Visible = True

Set XlSheet = XlBook.Worksheets(1)

With XlSheet

    lastRow = .Cells.Find(What:="*", After:=.Range("A1"), SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row

End With

.Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByRows, SearchDirection:=xlPrevious)在此实例中未返回有效范围。 这个测量发现是不成功的。 这就是为什么你会遇到类型不匹配的原因。

要解决,请执行以下操作:

Dim rng As Excel.Range

Set rng = .Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByRows, SearchDirection:=xlPrevious)

If Not rng Is Nothing Then
    lastRow = rng.Row
Else
    'ToDo - handle the error here
EndIf
链接地址: http://www.djcxy.com/p/45679.html

上一篇: access 2010 getting max row in excel 2010

下一篇: How can I add a macro to a Word 2010 or PowerPoint 2010 chart?