第一章 入门篇
1.11 CurrentRegion语句
今天我们来学习获取表中数据区域的另一个语句:CurrentRegion语句。
科目 | 语文 | 数学 | 美术 | ||
A同学 | 86 | 50 | 58 | ||
B同学 | 50 | 100 | 65 | 57 | 48 |
C同学 | 99 | 30 | 50 | 72 | 34 |
44 | 47 | 91 | 88 | ||
E同学 | 94 | 55 | 33 | 38 | 67 |
28 | 76 | 32 | 73 | 66 |
象上图这样,在用END语句获取数据的边界时,如果基准单元格所在的行或列的最后一个单元格正好是空值,那么它获取的边界也是不准确的。
比如我们以“a1”单元格为基准单元格,Cells(Rows.Count, 1).End(xlUp).Row返回的是6而不是7,Cells(1, Columns.Count).End(xlToLeft).Column返回的是5而不是6。对于这样的现象,今天我们就来学习另一个比END语句更聪明的获取数据边界的语句:CurrentRegion语句。
CurrentRegion是单元格的一个属性,代表指定单元格所在的区域,也就是与基准单元格连接在一起的一片矩形数据区域。
编写格式:
单元格.CurrentRegion.方法或属性
如:Range("a1").currentregion.rows.count,返回“a1”单元格所在区域的总行数;
Range("a1").CurrentRegion.Columns.Count,返回“a1”单元格所在区域的总列数;
Range("a1").currentregion,返回“a1”单元格所在的区域,这个我们在以后的数组章节会经常用到。
上一节的程序我们可以再修改成这样:
Sub currentregion()
h = Range("a1").CurrentRegion.Rows.Count
l = Range("a1").CurrentRegion.Columns.Count
For i = 2 To h
For n = 2 To l
If Cells(i, n) < 60 Then
Cells(i, n).Interior.ColorIndex = 3
End If
Next
Next
End Sub
应用该语句时,要统计的区域无论中间有没有空格,只要与基准单元格相连接,都会被统计到。如果有数值的单元格与基准单元格所在区域未连接,不会被统计到。这样就可以避免在数据区域之外有杂乱字符、或我们肉眼看不到的某些非空单元格影响数据边界的判断。
往期精彩回顾:
学习VBA,报表做到飞 第一章 入门篇 1.10 END语句通常用法
学习VBA,报表做到飞 第一章 入门篇 1.8 FOR循环语句
我是云飞扬,职场财会人员,愿与大家分享表格制作和数据统计分析的技巧与方法,希望大家的工作更便捷,更轻松!
本文暂时没有评论,来添加一个吧(●'◡'●)