iLastRow无法正常工作

我在VBA中遇到iLastRow的问题。 我使用下面的标签来定义列中数据的最后一行:

 iLastRow = Cells(Rows.Count, "H").End(xlUp).Row 

不过,我总是会得到最后一行数据。 所以如果列A中数据的最后一行是第12行,列H中最后一行是10,那么结果仍然是12。 为了我的目的,我需要代码给我10作为结果。 任何帮助,高度赞赏,谢谢!

如果正确的工作表处于活动状态,则您的发布代码应该可以工

这应该工作:

 iLastRow = Range("H" & Rows.Count).End(xlUp).Row 

我会build议编写自定义函数:

 Function GetLastRow(ByVal wsh as Worksheet, Optional sColName As String = "A") As Integer GetLastRow = wsh.Range(sColName & wsh.Rows.Count).End(xlUp).Row End Function 

用法:

 iLastRow = GetLastRow(ActiveSheet, "H") 

干杯,
马切伊

迄今为止,所提出的解决scheme都不适用于我。 难道这与我把这个区域格式化成表格有关吗? 所以我总是会返回表中的最后一行,即使这个列中的单元格是空的…?

find一个适用于这个特殊情况的解决scheme

iLastRow = Range(“H1”)。End(xlDown).Row + 1