使用VBA在Excel中查找最后一行的函数
我试图build立一个简单的函数,它有1个单元格input,基于这个函数,它抵消了这个卷中最后一个连续填充的单元格。
Option Explicit Function LastCell(CellA As String) LastCell = Range(CellA).End(xlDown).Value End Function
出于某种原因,这是行不通的…
如果没有VBA,我可以通过例如=LOOKUP(9E+50,B:B)
来获得所需的结果。
不是一个非常优雅,并不总是有用的。
试试这个代码
Option Explicit Function LastCell(CellA As range) LastCell = CellA.End(xlDown).Value End Function
使用它= LastCell(B1)
请注意,此方法不适用于隐藏或过滤行或合并的单元格。
您的查找与数字是好的,但将返回#N/A
如果列中只包含文本或可能错误的答案如果混合的文本和数字。 更确定的公式可能是,
=max(iferror(match(1e99, B:B), 0), iferror(match("žžž", B:B), 0))
这将确定最后一个数字,date或文本值的行。 错误被忽略。
这将起作用,从下而上而不是从上到下:
LastCell = cells(rows.count,CellA.column).End(xlUp).Value
这将返回最后一个单元格的值(类似于您的代码),如果您想要地址,则将.Value更改为.Address。
编辑:另外改变从string到范围CellA的昏暗
当调用函数时,请尝试:
MsgBox LastCell(ActiveCell.Address)
在你给的例子中,你需要调用这个函数:
LastCell("A1")