怎么快速定位到表格的最后一行(定位到表格有数据的最后一行)

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---

(0)

相关推荐