VBA之Excel应用第五节:单元格的当前区域(CurrentRegion)属性

《VBA之Excel应用》(版权10178983)是非常经典的,是我推出的第七套教程,定位于初级,目前是第一版修订。这套教程从简单的录制宏开始讲解,一直到窗体的搭建,内容丰富,实例众多。大家可以非常容易的掌握相关的知识,这套教程共三册,十七章,都是我们在利用EXCEL工作过程中需要掌握的知识点,希望大家能掌握利用。今日讲解的内容是:VBA之Excel应用第四章第五节:单元格的当前区域(CurrentRegion)属性

【分享成果,随喜正能量】195 须知往生净土,全仗信、愿。有信、愿,即未得三昧、未得一心不乱,亦可往生。且莫只以一心不乱,及得念佛三昧为志事,不复以信、愿、净念为事。。

第四章 单元格(Range)对象

大家好,我们这章开始学习单元格对象。单元格(Range)对象是Excel VBA中最重要的对象之一。本章概述了Range对象的属性和方法,包括如何声明一个单元格对象,如何选择单元格对象,以及对行、列的操作,还讲解了如何对单元格进行复制、粘贴、清除、计数,以及对当前区域CurrentRegion的讲解,还涉及到单元格的联合与交叉等。通过这章的学习,大家会更清楚地看到VBA的结构,以及在实际工作中VBA的综合利用。

第五节 单元格的当前区域(CurrentRegion)属性

大家好,我们今天继续讲解单元格的属性和方法,今天介绍给大家的是单元格的CurrentRegion属性,这个属性对于理解平时EXCEL操作时的一些概念有所帮助。也是Range的一个非常重要的属性,在VBA代码中,我们可以只给出一个单元格就可以利用这个单元格扩展这个区域,而不必实际知道实际的行列数。下面我们就来讲解这个属性。

1 Range.CurrentRegion属性

这个属性返回一个Range对象,该对象表示当前区域。当前区域是空白行和空白列的任何组合所限定的区域。此为只读属性。

语法:expression.CurrentRegion

expression 一个表示 Range 对象的变量。

  • 此属性对于许多自动扩展所选内容以包括整个当前区域的操作很有用。
  • 该属性不能用于被保护的工作表。

2 对于CurrentRegion属性的理解

这个属性的语法中我们了解到:当前区域是空白行和空白列的任何组合所限定的区域。如何理解这句话的含义呢?我们看下面的截图:

我们看看C1和E4两个单元格的当前区域是什么?

利用的代码:

Sub mynzI() 'Range.CurrentRegion属性C1

Range("C1").CurrentRegion.Select

End Sub

Sub mynzJ() 'Range.CurrentRegion属性E4

Range("E4").CurrentRegion.Select

End Sub

代码截图:

下面我们看看代码的运行结果:C1的当前区域:

E4的当前区域:

对于以上的结果,大家是否理解呢?

3 当前区域的实际代码利用

下面我们利用一个实例来讲解一下这个属性的具体利用,在上述的截图中,我们求出以A1单元格为基准扩展的单元格范围内的数值最大的单元格,给这个单元格标识上红色。

我们看下面的代码:

Sub mynzK() 'Range.CurrentRegion 求A1单元格的当前区域的最大值

Dim myrng As Range, mycell As Range

Cells.Interior.ColorIndex = 0

Set myrng = Range("A1").CurrentRegion

myMAX = WorksheetFunction.Max(myrng)

For Each mycell In myrng

If mycell.Value = myMAX Then mycell.Interior.ColorIndex = 22

Next

End Sub

代码截图:

代码讲解:

1)Cells.Interior.ColorIndex = 0

这句代码将所有单元格的背景色改为“无填充颜色”,这样当我们的数值变化时也可以让结果的显示是正确的。

2)Set myrng = Range("A1").CurrentRegion

这句代码将以A1为基准,设置了当前的单元格区域,并赋给myrng 变量。

3)myMAX = WorksheetFunction.Max(myrng)

这句代码利用了一个工作表函数求出当前区域的最大值。WorksheetFunction表示利用的函数(Max)是工作表函数。

4) For Each mycell In myrng

If mycell.Value = myMAX Then mycell.Interior.ColorIndex = 22

Next

上述代码在当前区域中建立一个遍历,当单元格的值等于最大值时将这个单元格背景色设置为22(红色),当然我们可以使用任何颜色索引号来代替22(红色)。

我们看一下代码的执行效果:

我们可以再添加一些数据,再次运行:

从以上的代码解释及运行中我们可以看出,当我们事先不知道一个范围的确切边界时,可以使用CurrentRegion属性来确定我们的范围边界。

今日内容回向:

1) 单元格的CurrentRegion属性意义是什么,有什么作用?

2) 如何利用单元格的CurrentRegion属性求某范围的最大值?

3) 工作表函数如何表示?

本讲内容参考程序文件:工作簿04.xlsm

我20多年的VBA成果全在下面的资料中:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值