怎么快速定位到表格的最后一行(定位到表格有数据的最后一行)
No.1
vba编程中,经常需要定位到某一行或列的最后一个单元格。
或者说需要找出区域中的某个末尾单元格位置。
这种定位在程序应用中,十分普遍。
那么如何做到定位末位单元格,下面做一个例子来讲解一下。
No.2
上图就是用到的对象属性。
Range.End
是Range对象的End属性。
其有四个参数,xlDown、xlUp、xlToLeft、xlToRight。
很明显是四个方位,上下左右。
用中文来解释就是向下、向上、向左和向右。
具体是什么意思呢?
下面接着看。
如代码:
Range("A1").End(xlDown)
代表了以A1单元格为基准向下找,一直找到不是空值的单元格。
如果A列有10列数据,那么上面代码就返回A10单元格。
End属性返回一个Range对象。
上图为End属性参数以及值。
使用的时候对应着名称或值使用就可以了。
下面以一个例子来进行介绍,效果如下图:
No.3
四个按钮,执行找出四个方位的末尾,并且以找出的行或列,进行颜色和值填充。
分别为A列向下,B列向上 ,10行向左,11行向右。
自己调试的时候,可根据表进行设置。
A列向下末尾:
Private Sub EndDown() Dim R As Range Dim xR As Range Set R = Range("A1") Set xR = R.Resize(R.End(xlDown).Row, 1) With xR .Interior.Color = RGB(211, 222, 12) .Formula = "=row()" .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter End With End Sub
也可以使用以下代码定位存在值的最后一行行号。
Range("A1").End(xlDown).Row
B列向上末尾:
Private Sub EndUp() Dim R As Range Dim xR As Range Set R = Range("B10") Set xR = Range("B" & R.End(xlUp).Row & ":B" & R.Row) With xR .Interior.Color = RGB(11, 222, 112) .Formula = "=row()" .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter End With End Sub
可以用以下代码定位到单元格内有值的第一行号:
Range("B65535").End(xlUp).Row
总之,这个End属性找出的是一个区域内最后一个有值的单元格,返回这个Range对象。
一定要明白这一点。
如果,有一个表A列有15行,其中第10是个空值。
Range("A1").End(xlDown).Row
那么以上代码就会定位到第9行,也就是A9这个单元格,表明这个区域有9行。
下面的11~15行是另一个区域。
其它方位同理。
如要更加熟练地掌握End属性,还是多写代码来理解一下更好。
欢迎关注、收藏
---END---