相信学过OFFSET工作表函数的人对这个印象比较深刻,它可是函数中高手必备函数之一。在VBA中,他也同样大展身手。下面我们来看看他的用法吧。它一共就两参数:
Offset(行偏移,列偏移)
使用起来很简单,可使用单个单元格的偏移,如:
Range("A1").Offset(1,0)
表示的是A1单元格偏移一行的单元格A2,也可采用多个单元格的区域偏移,如:
Range("A1:A3").Offset(0,2)
表示的是A1:A3区域偏移两列也就是C1:C3单元格。是不是理解起来很简单?下面我们看看动图,给他们赋值:
Offset理解起来很简单,他可以用在很多地方,如我在循环遍历A列单元格的时候,想返回其他列的值,在找到最后一个有内容的单元格的时候,我需要在下一个单元格写入内容,这个时候就可以考虑用Offset偏移属性来做。
在Excel函数中,Offset是有5个参数的,第1个是基准单元格,2和3分别是行偏移和列偏移,4和5是扩展区域,那么在VBA中Offset为什么没有扩展区域呢?其实是有的,不过他做成了一个单独的属性。下面我们来看下一个属性。
Resize 扩展、调整Resize属性用于获取区域,如我现在引用的只是一个单元格,但是我需要返回A1:F2,2行6列的数据。可采用如下方式:
Range("A1").Resize(2,6)
如我想要把A1:F6单元格的数据复制到A6:F7区域,可使用如下语句:
Range("A1").Resize(2, 6).Copy Range("A6")
Resize与Offset属性组合起来相当于函数中的Offset,但是将他们拆开之后将变得更加灵活。下面我们来介绍一种不找到最后一个单元格,也不用Resize属性也能返回区域的一个属性
CurrentRegion 当前区域
CurrentRegion属性表示当前选中单元格所在的区域,怎么界定是当前的区域呢,就是数据区域的上下左右都是空格的最大矩形区域。
如图,在A1:F2区域周围有空格,那么我们要表示A1:F2区域也可用如下方式:
range("A1").CurrentRegion
表示A4:F5可用如下方式:
range("A4").CurrentRegion
当前区域周围一定都是空值
如动图,我将A1当前区域的值复制到A12单元格:
使用CurrentRegion属性,我们不找到最后一个单元格也能把区域数据引用出来,对于规范的数据来说,这个属性是很方便的。
关于单元格与区域的引用方面的属性就介绍到这里啦,下一节,我们继续讲解关于Range对象的常用方法与属性,敬请关注。