我决定在excel中确定LastRow的函数可以节省一些时间,因此:
Function LastRow() As Long
Application.Volatile
With ActiveSheet.UsedRange
LastRow = .Rows(.Rows.Count).Row
End With
End Function
在大多数情况下,这很好,但我注意到如果实际的最后一个单元格只是格式化,它将不会重新计算输入值时的方式。 它会在重新计算时得到正确的结果,但我认为让这种不稳定会自动完成。
我误解了什么?
注意 任何做类似事情的人都要注意,当你激活另一个工作表时,使这个易失性并使用ActiveSheet使它变得不可靠,因为该函数返回该工作表中的LastRow并重新计算。可能不是最好的主意。
答案 0 :(得分:2)
仅在计算单元格时触发易失性:MSDN
有一种欺骗的方法 - 这是基于更改单元格的事实,你必须先选择它:
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Application.Calculate
End Sub
请注意,这可能会破坏一些基本功能。在Microsoft KB文章中,他们评论说他们的示例会破坏复制/粘贴
的能力