有时候我们总会在已有的数据下面增加记录,所以VBA中要需要动态的获取更新后的区域。
在工作表中,我们选择数据区域中任意一个单元格,按CTRL+A就会选择整个数据区域。在VBA中,currentregion类似与工作表中的CTRL+A,通过判断当前选定的单元格,然后扩展到整个数据区域。
我们看下具体效果:
我们想左边的数据区域,代码如下:
Sub 动态获取()
[b3].CurrentRegion.Select
End Sub
以B3单元格为参照,扩展数据区域。
实例练习:
求各个产品的平均销量,代码如下:
Sub 求平均数量()
Dim rng As Range, num&, n%
For Each rng In Intersect(Range("a1").CurrentRegion, [a:a])
If rng.Value = [f4].Value Then
n = n + 1
num = num + rng(1, 3).Value
End If
Next
[g4] = num / n
End Sub
当然这样选择A列数据区域有点多此一举,我们只是为了练习所以这样做。
大家可以看到,当增加数据记录时,因为公式中区域不是选择的整列(=AVERAGEIF(A2:A8,F4,C2:C8)),所以就会出错,而通过代码出来的不会错。
通过这个例子我们也可以练习以前学过的知识。看懂不一定会写,要想真正掌握一定要动手写,发现问题,解决问题,这样才能更好的掌握。
转自:米宏Office
本文暂时没有评论,来添加一个吧(●'◡'●)