【问题标题】:How do you find the last row number in column VBA?您如何找到 VBA 列中的最后一行编号?
【发布时间】:2018-04-20 04:54:50
【问题描述】:

我正在尝试在特定 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

【问题讨论】:

标签: vba excel


【解决方案1】:

如果没有数据间隙,那么

lRow = ThisWorkbook.Sheets("Data").Range("A1").end(xldown).row

否则,如果有差距并且您想要绝对的最后一个,那么

lRow = ThisWorkbook.Sheets("Data").Range("A1048576").end(xlup).row

【讨论】:

    【解决方案2】:

    我会尝试详细说明已经给出的答案。

    要查找最后一行/列,有 End 对象的 Range 方法。 IE。如果你有Cells(row, column),那么你可以追加.End(),它可以有四个参数:xlUp, xlDown, xlToLeft, xlToRight。这个函数返回一个单元格(所以 Range 对象),所以要有行/列号,你需要访问 Row / Column 属性。总结一下,你应该使用:

    Cells(row, column).End(X).Row
    Cells(row, column).End(X).Column
    

    其中rowcolumn 是整数,X 是提到的参数之一。

    要查找最后一行,您应该使用特定的列号(对于您想知道最后一行的列)。你有两个选择:

    1. xlDown - 你可以这样想:从给定的单元格开始,然后向下直到遇到第一个空白单元格。返回最后一个非空单元格。

    2. 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
    

    【讨论】:

    • End() 方法的问题 - 如果某些行被过滤,它就不起作用。
    猜你喜欢
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-15
    • 2023-03-26
    • 1970-01-01
    相关资源
    最近更新 更多