使用VBA代码确定激活选择单元格区域

上传人:平*** 文档编号:11926321 上传时间:2017-10-15 格式:DOC 页数:20 大小:73.67KB
返回 下载 相关 举报
使用VBA代码确定激活选择单元格区域_第1页
第1页 / 共20页
使用VBA代码确定激活选择单元格区域_第2页
第2页 / 共20页
使用VBA代码确定激活选择单元格区域_第3页
第3页 / 共20页
使用VBA代码确定激活选择单元格区域_第4页
第4页 / 共20页
使用VBA代码确定激活选择单元格区域_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《使用VBA代码确定激活选择单元格区域》由会员分享,可在线阅读,更多相关《使用VBA代码确定激活选择单元格区域(20页珍藏版)》请在金锄头文库上搜索。

1、单元格区域引用方式的小结单元格区域引用方式的小结 EXCEL 技巧 2008-11-29 12:10:20 阅读 97 评论 0 字号:大中小 订阅 在使用 ExcelVBA 进行编程时,我们通常需要频繁地引用单元格区域,然后再使用相应的属性和方法对区域进行操作。所谓单元格区域,指的是单个的单元格、或者是由多个单元格组成的区域、或者是整行、整列等。下面,我们设定一些情形,以问答的形式对引用单元格区域的方式进行归纳。 -问题一:在 VBA 代码中,如何引用当前工作表中的单个单元格(例如引用单元格 C3)?回答:可以使用下面列举的任一方式对当前工作表中的单元格(C3) 进行引用。(1) Range

2、(C3)(2) C3(3) Cells(3, 3)(4) Cells(3, C)(5) Range(C4).Offset(-1)Range(D3).Offset(, -1)Range(A1).Offset(2, 2)(6) 若 C3 为当前单元格,则可使用: ActiveCell(7) 若将 C3 单元格命名为“Range1”,则可使用:Range(Range1) 或Range1(8) Cells(4, 3).Offset(-1)-问题二:在 VBA 代码中,我要引用当前工作表中的 B2:D6 单元格区域,有哪些方式?回答:可以使用下面列举的任一方式对当前工作表中单元格区域 B2:D6 进行引

3、用。(1) Range(“B2:D6”)(2) Range(B2, D6)(3) B2:D6(4) Range(Range(B2), Range(D6)(5) Range(Cells(2, 2), Cells(6, 4)(6) 若将 B2:D6 区域命名为“MyRange” ,则又可以使用下面的语句引用该区域: Range(MyRange) MyRange(7) Range(B2).Resize(5, 3)(8) Range(A1:C5).Offset(1, 1)(9) 若单元格 B2 为当前单元格,则可使用语句:Range(ActiveCell, ActiveCell.Offset(4, 2

4、)(10) 若单元格 D6 为当前单元格,则可使用语句: Range(B2, ActiveCell)-问题三:在 VBA 代码中,如何使用变量实现对当前工作表中不确定单元格区域的引用?回答:有时,我们需要在代码中依次获取工作表中特定区域内的单元格,这通常可以采取下面的几种方式:(1) Range(“A” & i)(2) Range(“A” & i & “:C” & i)(3) Cells(i,1)(4) Cells(i,j)其中,i、j 为变量,在循环语句中指定 i 和 j 的范围后,依次获取相应单元格。-问题四:在 VBA 代码中,如何扩展引用当前工作表中的单元格区域?回答:可以使用 Res

5、ize 属性,例如:(1) ActiveCell.Resize(4, 4),表示自当前单元格开始创建一个 4 行 4 列的区域。(2) Range(B2).Resize(2, 2),表示创建 B2:C3 单元格区域。(3) Range(B2).Resize(2),表示创建 B2:B3 单元格区域。(4) Range(B2).Resize(, 2),表示创建 B2:C2 单元格区域。如果是在一个单元格区域(如 B3:E6),或一个命名区域中(如将单元格区域 B3:E6 命名为“MyRange”)使用Resize 属性,则只是相对于单元格区域左上角单元格扩展区域,例如:代码 Range(C3:E6

6、).Resize(, 2),表示单元格区域 C3:D6,并且扩展的单元格区域可不在原单元格区域内。因此,可以知道 Resize 属性是相对于当前活动单元格或某单元格区域中左上角单元格按指定的行数或列数扩展单元格区域。-问题五:在 VBA 代码中,如何在当前工作表中基于当前单元格区域或指定单元格区域处理其它单元格区域?回答:可以使用 Offset 属性,例如:(1) Range(A1).Offset(2, 2),表示单元格 C3。(2) ActiveCell.Offset(, 1),表示当前单元格下一列的单元格。(3) ActiveCell.Offset(1),表示当前单元格下一行的单元格。(4

7、) Range(C3:D5).Offset(, 1),表示单元格区域 D3:E5,即将整个区域偏移一列。从上面的代码示例可知,Offset 属性从所指定的单元格开始按指定的行数和列数偏移,从而到达目的单元格,但偏移的行数和列数不包括指定单元格本身。-问题六:在 VBA 代码中,如何在当前工作表中引用交叉区域?回答:可以使用 Intersect 方法,例如:Intersect(Range(C3:E6), Range(D5:F8),表示单元格区域 D5:E6,即单元格区域 C3:E6 与 D5:F8 相重迭的区域。-问题七:在 VBA 代码中,如何在当前工作表中引用多个区域?回答:(1) 可以使用

8、 Union 方法,例如:Union(Range(C3:D4), Range(E5:F6),表示单元格区域 C3:D4 和 E5:F6 所组成的区域。Union 方法可以将多个非连续区域连接起来成为一个区域,从而可以实现对多个非连续区域一起进行操作。(2) 也可以使用下面的代码:Range(C3:D4, E5:F6)或C3:D4, E5:F6注意:Range(C3:D4, F5:G6),表示单元格区域 C3:G6,即将两个区域以第一个区域左上角单元格为起点,以第二个区域右下角单元格为终点连接成一个新区域。同时,在引用区域后使用 Rows 属性和 Columns 属性时,注意下面代码的区别:Ra

9、nge(C3:D4, F8:G10).Rows.Count,返回的值为 8;Range(C3:D4,F8:G10).Rows.Count,返回的值为 2,即只计算第一个单元格区域。引用多个单元格区域使用适当的方法可以很容易地同时引用多个单元格区域。可用 Range 和 Union 方法引用任意组合的单元格区域;用 Areas 属性可引用工作表上选定的一组单元格区域。使用 Range 属性通过在两个或多个引用之间放置逗号,可使用 Range 属性来引用多个单元格区域。下例清除了 Sheet1 上三个单元格区域的内容。Sub ClearRanges()Worksheets(Sheet1).Rang

10、e(C5:D9,G9:H16,B14:D18). _ClearContentsEnd Sub命名区域使得用 Range 属性处理多个单元格区域更为容易。下例可在三个命名区域处于同一工作表时运行。Sub ClearNamed()Range(MyRange, YourRange, HisRange).ClearContentsEnd Sub使用 Union 方法用 Union 方法可将多个单元格区域组合到一个 Range 对象中。下例创建了名为 myMultipleRange 的 Range 对象,并将其定义为单元格区域 A1:B2 和 C3:D4 的组合,然后将该组合区域的字体设置为加粗。Sub

11、 MultipleRange()Dim r1, r2, myMultipleRange As RangeSet r1 = Sheets(Sheet1).Range(A1:B2)Set r2 = Sheets(Sheet1).Range(C3:D4)Set myMultipleRange = Union(r1, r2)myMultipleRange.Font.Bold = TrueEnd Sub使用 Areas 属性可用 Areas 属性引用选定的单元格区域或多块选定区域中的区域集合。下述过程计算选定区域中的块数目,如果有多个块,就显示一则警告消息。Sub FindMultiple()If Se

12、lection.Areas.Count 1 ThenMsgBox Cannot do this to a multiple selection.End IfEnd Sub-问题八:在 VBA 代码中,如何引用当前工作表中活动单元格或指定单元格所在的区域 (当前区域)?回答:可以使用 CurrentRegion 属性,例如:(1) ActiveCell.CurrentRegion,表示活动单元格所在的当前区域。(2) Range(D5).CurrentRegion,表示单元格 D5 所在的当前区域。当前区域是指周围由空行或空列所围成的区域。该属性的详细使用参见CurrentRegion 属性示例

13、一文。-问题九:在 VBA 代码中,如何引用当前工作表中已使用的区域?回答:可以使用 UsedRange 属性,例如:(1) Activesheet.UsedRange,表示当前工作表中已使用的区域。(2) Worksheets(sheet1).UsedRange,表示工作表 sheet1 中已使用的区域。与 CurrentRegion 属性不同的是,该属性代表工作表中已使用的单元格区域,包括显示为空行,但已进行过格式的单元格区域。该属性的详细使用参见解析 UsedRange 属性一文。-问题十:如何在单元格区域内指定特定的单元格?回答:可以使用 Item 属性,例如:(1) Range(A1:B10).Item(5,3)指定单元格 C5,这个单元格处于以区域中左上角单元格 A1(即区域中第 1行第 1 列的单元格)为起点的第 5 行第 3 列。因为 Item 属性为默认属性,因此也可以简写为:Range(A1:B10)(5,3)。如果将 A1:B10 区域命名为”MyRange”,那么 Range(MyRange)(5,3)也指定单元格

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号