iLastRow无法正常工作

时间:2015-01-12 16:28:22

标签: excel vba excel-vba count rows

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

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

但是我总是得到最后一行数据。因此,如果A列中数据的最后一行是第12行,而H列中数据的最后一行是10,那么结果仍然是12。为了我的目的,我需要代码给我10个结果。 任何帮助都非常感谢,谢谢!

4 个答案:

答案 0 :(得分:3)

如果正确的工作表处于有效状态,您发布的代码应该

答案 1 :(得分:1)

这应该有效:

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

我建议编写自定义函数:

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")

干杯,
马切伊

答案 2 :(得分:0)

到目前为止,所提议的解决方案都不适用于我。难道它与我将区域格式化为表格这一事实有关吗?所以我总是会返回表格的最后一行,即使这列中的单元格是空的......?

答案 3 :(得分:0)

为这个特殊情况找到了一个有效的解决方案:

iLastRow =范围(" H1")。结束(xlDown).Row + 1