我正在尝试查找特定VBA Excel工作表中列中的最后一行编号。行号需要放入var中供以后使用。提前谢谢!
Dim i As Integer
Dim x As Integer
Dim lRow As Integer
Dim subj As String
subj = TextBox1.Text
lRow = ThisWorkbook.Sheets("Data").Range("A").Rows.Lastrow
ThisWorkbook.Sheets("Data").Cells(lRow, 1) = subj
For i = 1 To 1000
If ThisWorkbook.Sheets("Data").Cells(1, i) = ThisWorkbook.Sheets(subj).Cells(1, 1) Then
End If
Next i
答案 0 :(得分:2)
如果没有数据缺口,那么
lRow = ThisWorkbook.Sheets("Data").Range("A1").end(xldown).row
否则,如果存在间隙并且您希望绝对最后
lRow = ThisWorkbook.Sheets("Data").Range("A1048576").end(xlup).row
答案 1 :(得分:1)
我会仔细研究已经给出的答案。
要查找最后一行/列,End
对象的Range
方法。即如果你有Cells(row, column)
,那么你可以附加.End()
,它可以有四个参数:xlUp, xlDown, xlToLeft, xlToRight
。此函数返回一个单元格(所以Range
对象),因此要获得行/列编号,您需要访问Row
/ Column
属性。总而言之,您应该使用:
Cells(row, column).End(X).Row
Cells(row, column).End(X).Column
其中row
,column
是整数,X
是上述参数之一。
要查找最后一行,您应该使用特定的列号(对于您想知道最后一行的列)。你有两个选择:
xlDown
- 您可以这样想:从给定的单元格开始,然后向下直到第一个空白单元格满足。返回最后一个非空单元格。
xlUp
- 从给定的单元格开始,然后一直向上,直到满足非空白单元格。
注意:如果以空单元格开头,End
方法将返回第一个非空单元格。另一方面,如果从非空单元格开始,End
方法将一直运行,直到满足第一个空单元格并返回最后一个非空单元格。
这听起来很复杂,但让我举一些例子:
让我们有一张表:
A
1 1
2 2
3
4 4
5 5
然后
MsgBox Cells(1, 1).End(xlDown).Row 'returns 2
MsgBox Cells(5, 1).End(xlUp).Row 'returns 4
'start with cell in last row
MsgBox Cells(Rows.Count, 1).End(xlUp).Row 'returns 5