工作表中最后使用的单元格

工作表中最后使用的单元格

我需要一个公式(不是 VBA) 这将返回工作表中最后使用的单元格的行号。

我有如下数据:

在此处输入图片描述

并非所有列都有数据,并且列中填充的行数也不相同。

如果我只处理一列(说列F,我会使用:

=SUMPRODUCT(MAX((ROW(Sheet1!F:F))*(Sheet1!F:F<>"")))

得出十三,但数据跨越多列工作表1

如果我可以使用 VBA 而不是公式,我会使用类似以下内容:

Sub GetLastRow()
    Dim LastRow As Long, rng As Range
    Set rng = Sheets("Sheet1").Cells
    LastRow = rng.Find(what:="*", after:=rng(1), searchdirection:=xlPrevious).Row
    MsgBox LastRow
End Sub

我想我遗漏了一些非常简单的东西。

答案1

使用你的 SUMPRODUCT:

=SUMPRODUCT(MAX((ROW(Sheet1!A:AP))*(Sheet1!A:AP<>"")))

或此聚合:

=AGGREGATE(14,6,ROW(A:AP)/(A:AP<>""),1)

如果您可以限制行数,这将有助于加快公式的速度,因为它们是数组类型公式。

相关内容