学习Excel技术,关注微信公众号:
excelperfect
在VBA中,经常会遇到要找到已使用的最后一行或最后一列,这样就能够确定已使用的有数据的单元格区域,便于进行下一步的操作。关于查找最后使用的行或列,之前有多篇文章讲解过,下面再重温一下经典的方法。我们知道,工作表对象有一个UsedRange的属性,可以返回工作表中已使用的区域,例如:Set Rng = ActiveSheet.UsedRange
要找到当前工作表中最后使用的行的行号,可以使用下面的代码:lngLastRow = ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row
ActiveSheet.UsedRange.Rows.Count
会得到不正确的结果。因为数据块不一定是从第1行开始的。同理,下面的代码找到当前工作表中最后使用的列的列号:lngLastColumn = ActiveSheet.UsedRange.Columns(ActiveSheet.UsedRange.Columns.Count).Column
lngLastRow = Cells.Find("*", , xlValues, , xlRows, xlPrevious).Row
lngLastColumn = Cells.Find("*", , xlValues, , xlByColumns, xlPrevious).Column
注意,上述代码行将返回可见值的行和列,无论这些值是常量还是公式结果。如果最后一行是由公式返回的值且返回的是空字符串(””),此时想找到最后一行或最后一列,需将代码行中的常量xlValues更改为xlFormulas。欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。
欢迎到知识星球:完美Excel社群,进行技术交流和提问,获取更多电子资料,并通过社群加入专门的微信讨论群,更方便交流。