您好我需要帮助我的VBA中的这一行:
lastrow = wsTarget.Range("X65536").End(xlUp).Row
MsgBox lastrow
wsTarget
是我正在处理的工作表,我想知道最后一行数据是什么。通过查看工作表,最后一行应为9;然而,它一直给我回报。我做错了吗?
答案 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