查找列中的最后一个值(而不是最后一行)

时间:2020-07-11 05:12:27

标签: excel vba

我有一个工作表,其中的表正在不断更新,因此它具有的行数是可变的。我对检索列B中的最后一个值感兴趣。但是,棘手的是,表的此列中并非所有行都具有值。有时下一个具有实际值的单元格可能会在前一个单元格的正下方,有时它们之间可能会有许多空白。

我尝试使用以下代码进行操作:

LastValue = Cells(Rows.Count, "B").End(xlUp).Value

我遇到的问题是在非常特定的情况下发生的。如果我们假设该列中最后一个具有值的单元格是B6,但是与此列对应的表的最后一个单元格是B10,则检索到的值是空的({{1}中的那个值})。我需要找到的是单元格B10,并将该值提供给变量B6。有什么办法吗?我只能找到代码示例来查找整个工作表的最后一行,而忽略各个列。

1 个答案:

答案 0 :(得分:0)

下面的代码基于您的工作表标题为Sheet1,表为Table 1的作用。

Sub FindLastRowInExcelTable()

Dim lastrow As Long
Dim ws As Worksheet
Set ws = Sheets("Sheet1")

lastrow = ws.ListObjects("Table1").Range.Columns(2).Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row

End Sub

您可以修改Columns(2)来更改要计算的列。