我需要一个公式(不是 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)
如果您可以限制行数,这将有助于加快公式的速度,因为它们是数组类型公式。