Excel VBA 用CurrentRegion属性快速确定自已的地盘(excel怎么筛选出自己想要的内容)

fangcloud 1280 2022-08-09

本文转载自网络公开信息

Excel VBA 用CurrentRegion属性快速确定自已的地盘(excel怎么筛选出自己想要的内容)

在清朝初期,入关的八旗子弟通过骑马来圈定自已所属的土地,称为“跑马圈地”,但这种恃强凌弱的行为极大地激发了满汉之间的矛盾,后来清政府制止了这种霸道无理的行为。

在Excel中,用不着这么麻烦,任一单元格所在区域能很快地确定下来,只要这一区域周边被空行和空列所包围着,并且也不会激发任何的矛盾,用户也非常喜欢这样的做法。

如果在工作表中直接操作,就是在当前单元格位于单元格区域中的任一单元格时,按下Ctrl+Shift+* 组合键,即可快速选择整个单元格区域,如下图所示。

在VBA中,起到相同作用的是Range对象的CurrentRegion属性。仍以上图所示的工作表为例,运行下面的代码:

Range("B2").CurrentRegion.Select

同样会选择单元格区域B2:D6。

正如上面所说的,当前单元格不一定是单元格B2,该区域中任意单元格都行,例如,下面的代码:

Range("C3").CurrentRegion.Select

也会选择单元格区域B2:D6。

由上可知,CurrentRegion属性返回代表当前区域的Range对象。当前区域是指包含有当前单元格的由空行和空列围绕组成的区域。在该区域中,必须保证区域中的每一行或列中至少有一个存在数据的单元格。

但是,该属性在受保护的工作表中无效。

如上图所示的工作表。

1、若单元格B2或者C3是当前单元格,那么下面的代码:

ActiveCell.CurrentRegion.Select

也会选择单元格区域B2:D6。

2、下面的代码:

Sub CurrentRegionTest1()

Dim rng As Range '声明对象变量

'将当前单元格区域赋值给变量

Set rng =Range("B2").CurrentRegion

'显示信息

MsgBox "当前单元格区域共有" &rng.Rows.Count & "行," & _

rng.Columns.Count & "列" &vbCrLf & _

"当前单元格区域在第"& rng.Row & "行,第" & _

rng.Column & "列开始"

End Sub

运行后,会弹出如下图所示的消息框,显示当前单元格区域的一些信息。

试试看,如果选择紧邻单元格区域的行列中的单元格为当前单元格,再运行CurrentRegion属性,所获得的区域将包含该单元格所在的行或列,即便现在该单元格所在的行或列为空。

下面的示例工作表如下图所示,看看下面的代码:

Sub CurrentRegionTest2()

Dim rng As Range '声明对象变量

'将当前单元格区域赋值给变量

Set rng =Range("B1").CurrentRegion

'选择当前单元格区域除第1行以外的区域

rng.Offset(1, 0).Resize(rng.Rows.Count - 1,rng.Columns.Count).Select

End Sub

运行代码后,将选择当前区域中除标题行以外的单元格区域,如下图所示。

如上图所示的工作表,下面的代码设置当前单元格区域的偶数行的背景色为红色:

Sub CurrentRegionTest3()

Dim rng As Range '声明对象变量

Dim rngRow As Range '声明计数变量

'将当前单元格区域赋值给变量

Set rng =Range("B1").CurrentRegion

'选择当前单元格区域除第1行以外的区域

For Each rngRow In rng.Rows

'如果为偶数行,则将其背景色设置为红色

If rngRow.Row Mod 2 = 0 Then

rngRow.Interior.ColorIndex = 3

End If

Next rngRow

End Sub

运行代码后的结果如下图所示。

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表亿方云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱daifeng@360.cn 处理。
上一篇:按键盘上下键不能移动到上面或者下面的单元格 是整个表格在移动 怎么恢复成原来的样子啊(excel单元格用键盘上下不能移动)
下一篇:企业级ETL-DW ETL典型方案:保险行业解决方案(企业级礼仪姐姐)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~