总行数
如何确定工作表中使用的行的总数?
Dim rows As Integer rows = ActiveWorkbook.Sheets(1).Range("A65536").End(xlUp).Offset(1, 0).Rows.Count
我需要知道,所以我可以遍历所有行:
For row = 1 To rows ' Check if row contains pattern. match = ReFind(Range(row & ":" & row), "^.*(\[KA\])|(\[KIC\])|(\[KS\])|(\[NA\]).*$") If match <> "" Then Call CopyRow(row) End If Next row
使用.Cells(.Rows.Count, "A").End(xlUp).Row
将返回在特定列中使用的最后一行,不一定是使用任何单元格的最后一行。
另一种方法是使用Sheet.UsedRange
但是您必须了解某些限制。
.UsedRange
返回所有使用的单元格的边界的矩形区域,所以它不能在单元格A1
处锚定。 获取范围底部的行号使用
.UsedRange.Row + .UsedRange.Rows.Count - 1
当删除行(或列) .UsedRange
可能不会更新,因此您可能会得到一个大于真正的使用范围的范围。
你可以强制更新:如果你很高兴使用ActiveSheet
然后把行
Application.ActiveSheet.UsedRange
在你的代码强制更新。
如果你不想使用ActiveSheet
(例如在一个例程中传递一个表作为参数),那么使用:
i = Sh.UsedRange.Row
现在不要依赖i
的价值。 .UsedRange
的下一个引用将是真正的使用范围。