再试试下面的语句(Excel 2007及以上版本):
Range(“A1048576”).End(xlUp).Select
或者是(Excel 2003及以下版本):
Range(“A65536”).End(xlUp).Select
选择单元格A10 。也就是列A中有数据的单元格区域的最后一个单元格 。
我们来小结一下 。
类似于本文开头所示的工作表,如果列A中的单元格区域放置着连续的数据,即表中的单元格区域A1:A10,我们要找到列A中存放数据的最后一个单元格,有两种方法 。第一种是从单元格A1开始使用End属性向下移至A10,即语句Range(“A1”).End(xlDown).Select 。第二种是从工作表列A中的最后一个单元格开始向上移至A10,即语句Range(“A1048576”).End(xlUp).Select 。
但是,如果在A1:A10中某个单元格为空(假设是单元格A5),那么语句Range(“A1”).End(xlDown).Select就不会移至单元格A10,而是移至单元格A4 。所以,第一种方法不保险,仅在能确保单元格区域连续的情况下使用 。通常,我们偏向于使用第二种方法,即从工作表中列中的最后一个单元格向上移,确保能移至该列中最后一个有数据的单元格上 。
看看使用第二种方法选取单元格区域最后一个单元格的语句,对于Excel 2007之前或之后的版本,由于行数不同,使用的单元格也不一样:Range(“A1048576”)或Range(“A65536”) 。
在本系列前面的文章中曾介绍,Application对象有一个Rows属性,可以返回工作表所在的行 。该属性也可以返回工作表中的总行数,语句如下:
Rows.Count
如果是Excel 2003,则返回值65536;如果是Excel 2007及以后的版本,则返回值1048576 。
因此,工作表列A中处于最底端(即最后)一个单元格可表示为:
Range(“A” & Rows.Count)
从而上述第二种方法的代码也可以写为:
Range(“A” &Rows.Count).End(xlUp).Select
同样是选择单元格A10(即列A中有数据的单元格区域的最后一个单元格) 。并且,该代码更具有通用性,这样就不怕Excel的版本问题了 。
注意:上面是以列为例来说明如何选取某列中的最后一个有数据的单元格,对于行来说,如何选取某一行中最后一个有数据的单元格,与上面的方法相同,只是需要修改相关参数 。
猜你喜欢
- excel图表快速确定工作表中已使用的区域——UsedRange属性
- 怎么用excel vba开发学生管理系统
- 快速定位到特定的单元格——SpecialCells方法
- excel自定义枚举常量
- excel怎么定义用户类型
- Excel中的加强版“录像机”
- 看看Excel的那些常用对象
- 怎么看Excel的那些常用对象
- 2 Excel的那些常用对象
- 3 看看Excel的那些常用对象
