ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 19067|回复: 43

[分享]我的地盘我作主——CurrentRegion属性示例

[复制链接]

TA的精华主题

TA的得分主题

发表于 2006-11-8 08:32 | 显示全部楼层 |阅读模式
本帖已被收录到知识树中,索引项:Range对象
我的地盘我作主——CurrentRegion属性示例
分类:ExcelVBA>>ExcelVBA对象模型编程>>常用对象>>Range对象
CurrentRegion属性代表什么
您可能经常在程序代码中看到CurrentRegion属性,它是一个非常有用的属性,返回活动单元格所在的周围由空行和空列组成的单元格区域(即通常所说的当前区域),如图1所示。
  图1
具体地说,当前区域即活动单元格所在的矩形区域,该矩形区域的每一行和每一列中至少包含有一个数据,其周围是空行和空列,图1中列举了其中的4种情形(见蓝色阴影区域)。在当前区域范围内,不管活动单元格是哪一个单元格,其所在的当前区域均为同一区域,如上例中的B5:D7区域,活动单元格B5的当前区域为B5:D7,当活动单元格为C6时,其当前区域仍为B5:D7。
使用CurrentRegion属性相当于在Excel工作表中选择菜单“编辑——定位”命令,在弹出的“定位”对话框中单击“定位条件”按钮,然后在“定位条件”对话框中选中“当前区域”选项按钮,或者相当于使用Ctrl+Shift+*组合键。

[分享]我的地盘我作主——CurrentRegion属性示例

[分享]我的地盘我作主——CurrentRegion属性示例

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-11-8 08:35 | 显示全部楼层
CurrentRegion属性的一些基本应用
CurrentRegion属性可用于很多操作,下面通过如图2所示的工作表示例讲解该属性的应用。
9kztD2bQ.rar (8.06 KB, 下载次数: 631)
  图3

[分享]我的地盘我作主——CurrentRegion属性示例

[分享]我的地盘我作主——CurrentRegion属性示例

[分享]我的地盘我作主——CurrentRegion属性示例

[分享]我的地盘我作主——CurrentRegion属性示例

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-11-8 08:36 | 显示全部楼层
(6) 复制当前区域的数据到另一位置
Sub CopyCurrentRegion()
  Sheets("sheet1").Range("A1").CurrentRegion.Copy Sheets("sheet2").Range("A1")
End Sub
上述代码将工作表Sheet1中单元格A1所在的区域复制到工作表sheet2中以单元格A1开始的单元格区域中。

(7) 格式化当前区域中的数据
Sub FormatCurrentRegion()
  With ActiveCell.CurrentRegion
    .Font.Bold = True
    .Font.ColorIndex = 3
  End With
End Sub
上述代码将工作表中活动单元格所在区域数据加粗且设置为红色。

(8) 在当前区域中自动套用格式
Sub testAutoFormatCurrentRegion()
  Worksheets("sheet1").Range("A1").CurrentRegion.AutoFormat
End Sub
上述代码将在工作表sheet1中单元格A1所在区域自动套用默认的格式,当然,您可以设置所需套用的格式,默认值为xlRangeAutoFormatClassic1。

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-11-8 08:37 | 显示全部楼层
一些示例
[示例1] 在当前区域中查找空白单元格并填充
如下图4所示的工作表,现在要使用空白单元格上方的有数据的单元格中的数据来填充空白单元格。
  图4
可以编写如下的代码:
Sub FillBlankCells()
  Worksheets("sheet1").Range("A1").CurrentRegion. _
SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
  Worksheets("sheet1").Range("A1").CurrentRegion.Value = _
Worksheets("sheet1").Range("A1").CurrentRegion.Value
End Sub
运行代码后,工作表中单元格A1所在区域中的空白单元格被相应数据填充,如图5所示。
  图5

[示例2] 一个排序的简单示例
如图6所示的工作表,现在对第3列进行排序,按降序排列。
  图6
编写的代码如下:
Sub testSort()
  Dim rng As Range
  Set rng = Worksheets("sheet1").Cells(1, 1).CurrentRegion
  rng.Sort Key1:=rng.Cells(1, 3), Order1:=xlDescending, Header:=xlYes
End Sub
运行代码后,工作表中的数据将按照第3列的数据从大到小进行排列,如图7所示。
  图7

[分享]我的地盘我作主——CurrentRegion属性示例

[分享]我的地盘我作主——CurrentRegion属性示例

[分享]我的地盘我作主——CurrentRegion属性示例

[分享]我的地盘我作主——CurrentRegion属性示例

[分享]我的地盘我作主——CurrentRegion属性示例

[分享]我的地盘我作主——CurrentRegion属性示例

[分享]我的地盘我作主——CurrentRegion属性示例

[分享]我的地盘我作主——CurrentRegion属性示例

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-11-8 08:39 | 显示全部楼层

小结
1、CurrentRegion属性的基本语法为:
<单元格对象>.CurrentRegion
2、可以先使用CurrentRegion属性返回指定单元格或者活动单元格所在的区域,然后使用其它的属性对该区域的数据进行操作。

By fanjy in 2006-11-7

TA的精华主题

TA的得分主题

发表于 2006-11-8 08:55 | 显示全部楼层
谢谢版主分享!一时理解不了,慢慢学习

TA的精华主题

TA的得分主题

发表于 2006-12-24 22:42 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2006-12-24 22:57 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
如此也的贴子要顶上去,让更多的人看到。

TA的精华主题

TA的得分主题

发表于 2007-1-17 22:10 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2007-2-15 19:33 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
学习~~
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-25 11:28 , Processed in 0.048085 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表