范围(“X65536”)。结束(xlUp)。行不起作用

时间:2013-08-15 23:53:24

标签: excel vba

您好我需要帮助我的VBA中的这一行:

lastrow = wsTarget.Range("X65536").End(xlUp).Row
MsgBox lastrow

wsTarget是我正在处理的工作表,我想知道最后一行数据是什么。通过查看工作表,最后一行应为9;然而,它一直给我回报。我做错了吗?

3 个答案:

答案 0 :(得分:0)

输入时间稍长,但Range.Find方法可能适合您:

lastrow = wsTarget.Columns("X").Find("*", wsTarget.Range("X1"), xlValues, SearchDirection:=xlPrevious).Row
MsgBox lastrow

答案 1 :(得分:0)

将来,请尝试通过从定义的单元格向上移动来确定最后一行。特别是65536这是Excel 2003的最大行可以处理(旧代码!)。我们应该使代码与版本无关!

对于您要找到的所有未来版本的办公室,您将获得以下代码:

' Start going up from next row of last cell
lastrow = wsTarget.Cells.SpecialCells(xlLastCell).row + 1
lastrow = wsTarget.Range("X" & lastrow).End(xlUp).Row

答案 2 :(得分:0)

基于“最后一行数据”并不一定与ColumnX重合,以下courtesy可能适合:

Sub Last_Real_Populated_Row()
    ActiveCell.SpecialCells(xlLastCell).Select
    LastR = ActiveCell.Row
    LastC = ActiveCell.Column
    LastRealC = 1
    For Counter = LastR To 1 Step -1
        Range(Cells(Counter, LastC), Cells(Counter, LastC)).Select
        Selection.End(xlToLeft).Select
        If Not IsEmpty(ActiveCell.Value) Then
            LastRealR = ActiveCell.Row
            Exit For
        End If
    Next
End Sub