分享

学习VBA,报表做到飞 第一章 入门篇 1.11 CurrentRegion语句

 拾叁亿人 2023-04-05 发布于云南

第一章 入门篇

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

应用该语句时,要统计的区域无论中间有没有空格,只要与基准单元格相连接,都会被统计到。如果有数值的单元格与基准单元格所在区域未连接,不会被统计到。这样就可以避免在数据区域之外有杂乱字符、或我们肉眼看不到的某些非空单元格影响数据边界的判断。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多