iLastRow 无法正常工作
iLastRow does not work properly
我对 VBA 中的 iLastRow
有疑问。我使用以下标记来定义列中包含数据的最后一行:
iLastRow = Cells(Rows.Count, "H").End(xlUp).Row
然而,我总是得到最后一行的数据。因此,如果 A 列中数据的最后一行是第 12 行,而 H 列中数据的最后一行是 10,结果我仍然得到 12。出于我的目的,我需要代码给我 10 作为结果。
非常感谢任何帮助,谢谢!
这应该有效:
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")
干杯,
Maciej
如果正确的工作表处于活动状态,您发布的代码应该可以工作。
到目前为止 none 所提议的解决方案不幸地对我有效。会不会跟我把区域格式化成table有关系?所以我总是 return table 的最后一行,即使此列中的单元格为空...?
针对此特定案例找到了可行的解决方案:
iLastRow = 范围("H1").End(xlDown).Row + 1
我对 VBA 中的 iLastRow
有疑问。我使用以下标记来定义列中包含数据的最后一行:
iLastRow = Cells(Rows.Count, "H").End(xlUp).Row
然而,我总是得到最后一行的数据。因此,如果 A 列中数据的最后一行是第 12 行,而 H 列中数据的最后一行是 10,结果我仍然得到 12。出于我的目的,我需要代码给我 10 作为结果。 非常感谢任何帮助,谢谢!
这应该有效:
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")
干杯,
Maciej
如果正确的工作表处于活动状态,您发布的代码应该可以工作。
到目前为止 none 所提议的解决方案不幸地对我有效。会不会跟我把区域格式化成table有关系?所以我总是 return table 的最后一行,即使此列中的单元格为空...?
针对此特定案例找到了可行的解决方案:
iLastRow = 范围("H1").End(xlDown).Row + 1