在VBA代码中引用Excel工作表中单元格区域的方式小结解读

上传人:仙*** 文档编号:63383191 上传时间:2022-03-18 格式:DOC 页数:25 大小:267.50KB
收藏 版权申诉 举报 下载
在VBA代码中引用Excel工作表中单元格区域的方式小结解读_第1页
第1页 / 共25页
在VBA代码中引用Excel工作表中单元格区域的方式小结解读_第2页
第2页 / 共25页
在VBA代码中引用Excel工作表中单元格区域的方式小结解读_第3页
第3页 / 共25页
资源描述:

《在VBA代码中引用Excel工作表中单元格区域的方式小结解读》由会员分享,可在线阅读,更多相关《在VBA代码中引用Excel工作表中单元格区域的方式小结解读(25页珍藏版)》请在装配图网上搜索。

1、在 VBA 代码中引用 Excel 工作表中单元格区域的方式小结问题一:在 VBA 代码中,如何引用当前工作表中的单个单元格回答:可以使用下面列举的任一方式对当前工作表中的单元格Ran ge(C3C33CRan ge(C4.Offset(-1-1Ran ge(A1.Offset(2,(7 若将 C3 单元格命名为“Rangef ,则可使用:Range(Range1或Range1(9Ran ge(A1.Ra nge(C3问题二:在 VBA 代码中,我要引用当前工作表中的B2:D6 单元格区域,有哪些方式?回答:可以使用下面列举的任一方式对当前工作表中单元格区域B2:D6 进行引用。(1(2Ran

2、 ge(B2,(例如引用单元格 C3?(C3 进行引用(1(2(3(4(5Ran ge(D3.0ffset(,Cells(3,Cells(3,(6 若 C3 为当前单元格,则可使用ActiveCell(8Cells(4,3.Offset(-1Range( “ B2:D6D6B2:D6Ran ge(D6(5Ra nge(Cells(2,2,Cells(6,(3(4Ra nge(Ra nge(B2,(6 若将 B2:D6 区域命名为“ MyRangg,则又可以使用下面的语句引用该区域:Ran ge(MyRa ngeMyRa nge(7Ran ge(B2.Resize(5,3(8Ran ge(A1:

3、C5.Offset(1,1(9 若单元格 B2ActiveCell.0ffset(4,为当前单元格,则可使用语句:Ra nge(ActiveCell,2(10 若单元格 D6 为当前单元格,则可使用语句:Ran ge(B2,ActiveCell冋题二: 在 VBA 代码中,用如何使用变量实现对当前工作表中不确定单元格区域的引?回答:采有时,我们需要在代码中依次获取工作表中特定区域内的单元格,这通常可以取下面的几种方式:(1Range( “A&(2Range( “A&i&“:C&(3Cells(i,1(4Cells(i,j其中,i、j 为变量,在循环语句中指疋i 和 j 的范围后,依次获取相应单

4、兀格。问题四:在 VBA 代码中,如何扩展引用当前工作表中的单元格区域?回答:可以使 用Resize属 性,例如:(1 ActiveCell.Resize(4, 4,表示自当前单元格开始创建一个4 行 4列的区域。(2Ran ge(B2.Resize(2,2 ,表示创建 B2:C3 单元格区域。(3Ran ge(B2.Resize(2, 表示创建 B2:B3 单元格区域。(4Ran ge(B2.Resize(,2 ,表示创建 B2:C2 单元格区域。如果是在一个单元格区域(如 B3:E6,或一个命名区域中(如将单元格区域 B3:E6 命名 为“ MyRangg 使用 Resize 属性,则只是

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

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

7、如何在当前工作表中引用多个区域?回答:(1可以使用Un io n方法: ,例如:Un io n(Ra nge(C3:D4, Ran ge(E5:F6,表示单元格区域 C3:D4 禾口 E5:F6 所组成的区 域。Un io n 方法可以将多个非连续区域连接起来成为一个区域,从而可以实现对多个非连续区域- *起进行操作。(2也可以使用下面的代码:Ran ge(C3:D4,E5:F6或C3:D4,E5:F6注意:Ran ge(C3:D4,F5:G6,表示单元格区域 C3:G6,即将两个区域以第一个区域左上角单元格为起点, 以第二个区域右下角单元格为终点连接成一个新区域同时,在引用区域后使用 Row

8、s 属性和 Columns 属性时,注意下面代码的区别: Ran ge(C3:D4,F8:G10.Rows.Cou nt, 返 回 的 值 为 8Range(C3:D4,F8:G10.Rows.Count,返回的值为 2,即只计算第一个单元格区域问题八:在 VBA 代码中,如何引用当前工作表中活动单元格或指定单元格所在的区域(当刖区域?回答:可以使用Curre ntRegio n属性例如 :(1ActiveCell.Curre ntRegio n表示活动单元格所在 的当 当前区域。(2Ra nge(D5.Curre ntRegion表示单元格D5 所 在 的当 i 前区域。当 前 区 域 是

9、指 周 围 由 空 行 或 空 列 所 围 成 的 区 域 。 该 属 性 的 详 细 使 用 参 见(2 Worksheets(sheet1.UsedRange,表示工作表 sheet1 中 已使用 的区域 与CurrentRegion 属性不同的是,该属性代表工作表中已使用的单元格区域,包括显示为空行,但已进行过格式的单元格区域。该属性的详细使用参见解析UsedRa nge属性一文。Curre ntRegio n属 性 示 例 问题九:在 VBA 代码中,如何引用当前工作表中已使用的区域?可 以使用UsedRa nge属 性(1 Activesheet.UsedRa nge表示当前工作表中

10、已使用的区域问题十:如何在单元格区域内指定特定的单元格?以 使 用 Item 属 性(1Range(A1:B10.ltem(5,3指定单元格 C5,这个单元格处于以区域中左上角单元格A1(即区域中第 1 行第 1 列的单元格为起点的第 5 行第 3 列。因为 Item 属性为默认属 性,因 此也 可 以 简 写 为: Ran ge(A1:B10(5,3。如果将 A1:B10 区域命名为” MyRange,那么 Range(MyRange(5,3 也指定单元格 C5 。(2 Range(A1:B10(12,13指定单元格 M12 即用这种方式引用单元格,该单元格不必- *定要包含在区域内同时,也

11、不需要:索引数值是正值,例如Ra nge(D4:F6(0,0代表单元格C3Range(D4:F6( -1,-2代表单元格A2而Ran ge(D4:F6(1,1代表单元格D4(3也可以在单元格区域中循环 ,例如Range(D4:F6(2,2(3,4代表单元格 H7,即该单元格位于作为左上角单元格E5 的第 3行第 4 列(因为 E5 是开始于区域 中左上角单元格 D4 起的第 2 行第 2 列。(4 也能使用一个单个的索引数值进行引用。计数方式为从左向右,即在区域中的第一 行开始从左向右计数,第一行结束后,然后从第二行开始从左到右接着计数,依次类推。(注:从区域中第一行第一个单元格开始计数,当第

12、一行结束时,转入第二行最 左边的单元格,这样按一行一行从左向右依次计数。以单元格区域中第1 个单元格开始,按上述规则依次为第2 个单元格、第3 个单元格,.等等,例如:Ran ge(A1:B2(1代表单元格A1;Ran ge(A1:B2(2代表单元格B1;Ran ge(A1:B2(3代表单元格A2;Ran ge(A1:B2(4代表单元格B2。这种方法可在工作表中连续向下引用单元格(即不一定是在单元格区域内,但在遵循相同的规律例如:Ran ge(A1:B2(5代表单元格A3;Ran ge(A1:B2(14代表单元格B7等等。也可以使用单个的负数索引值。这种使用单个索引值的方法对遍历列是有用的,例

13、如,Ran ge(D4(1代表单元格 D4,Ran ge(D4(2代表单元格D5,Range(D4(11代表单元格D14等等。同理,稍作调整后也可遍历行,例如:Ran ge(D4.Colum ns(2 代表单元格E4,Range(D4.Columns(5 指定单元格 H4,等等定义了对象变量后,像单元格方法一样, 中的任一单元格,例如,rng(3,4Pears on回答:见下面的示例代码(1Ran ge(C:C.Select表示选择C列Ran ge(C:E.Select,表 示选择C列至E列(2Ran ge(1:1.Select表示选择第-一一行Ran ge(1:3.Select, 表示选择第

14、1 行至第3 行(3Ran ge(C:C.E ntireColu mn表示C列(5 当与对象变量配合使用时,Item属性能提供简洁并有效的代码,例如:SetrngWorksheets(1.a1Item 属性允许使用两个索引数值引用工作表指定单元格 D3。(By Chip这种方法可在工作表中连续向下引用单元格(即不一定是在单元格区域内,但在遵循相问题十在 VBA 代码中,如何引用当前工作表中的整行或整列?Columns.Count,其中 Cells.Rows 表示工作表所有行, Cells. Columns 表示工作表所 有 列。问题十三:在 VBA 代码中,如何引用工作表中的特定单元格区域?

15、回答:在工作表中,您可能使用过“定位条件”对话框。可以通过选择菜单“编辑一定位”,单击“定位”对话框中的“定位条件”按钮显示该对话框。这个对话框可 以允许用户选择特定的单元格。例如:(1Worksheets(sheet1.Cells.SpecialCells(xlCellTypeAllFormatConditions,表示工作表 sheet1 中由带有条件格式的单元格所组成的区域。(2ActiveCell.Curre ntRegio n.SpecialCells(xlCellTypeBla nks,表示当前工作表中活动单元格所在区域中所有空白单元格所组成的区域当然,还有很多常量和值的组合,可以

16、让您实现特定单元格的查找并引用。参见探 讨在工 作表 中找到最后一行一文问题十四:在 VBA 代码中,如何引用其它工作表或其它工作簿中的单元格区域?回答:要引用其它工作表或其它工作簿中的单元格区域,只需在单元格对象前加上相 应 的 引用 对 象 即 可, 例女口(1 Worksheets( “Sheet3” .Range( “C3:D5,表示引用工作表 sheet3 中的单元格区 域C3:D5。回答:可以使用下面的代码:(1Cells ,表示当前工作表中的所有单元格。(2Ra nge(Cells(1,1,Cells(Cells.Rows.Cou nt,Cells.问题十二:在VBA 代码中,如

17、何引用当前工作表中的所有单元格?Ran ge(D1.E ntireColu mn表 示D 列同样的方式,也可以选择整行,然后可以使用如AutoFit 方法对整列或整行进行调(2Workbooks( “ MyBook.xls ” .Worksheets( “sheetl ” .Range( “ B2 , 表示引用MyBook工作簿中工作表Sheet1上的单元格B2 。问题十五:还有其它 的 一些情形吗 ?回答:列举如下:(1Cells(15数顺序,表示单元格 为自左至右O1,、即可在 Cells从上到下,属性中指疋单兀格数子来选择单兀格,其计 又如 Cells(257 ,表示单元格 B1。(2

18、Cells(, 256,表示单元格 IV1 ,但是如果 Cells(, 257,则会返回错误我们用 VBA 对 Excel 进行处理,一般是对其工作表中的数据进行处理,因此,引用单 元格区域是 ExcelVBA 编程中最基本的操作之一,只有确定了所处理的单元格区域,才 能使用相应的属性和方法进行下一步的操作 上面列举了一些引用单元格区域的情形和方式,可以看出,弓 I用单元格区域有很多方 式,有一些可能不常用,可以根据工作表的所处的环境和个人编程习惯进行选择使 用 当然,在编写程序时,也可能会将上面的一些属性联合使用,以达到选取特定操作对象的目的,例如 Offset 属性、Resize 属性、C

19、urrentRegion 属性、UsedRange 属性等 的组合。如何选择当前工作表中的单元格?例如,可以使用下面的代码选择当前工作表中的单元格D5:ActiveSheet.Cells(5, 4.Select或:ActiveSheet.Range(D5.Select 如何选择同一工作簿中其它工作表上的单元格?例如,要选择同一工作簿中另一工作表上的单元格E6,可以使用下面的代码:Applicatio n.Goto ActiveWorkbook.Sheets(Sheet2.Cells(6, 5或:Application.Goto (ActiveWorkbook.Sheets(Sheet2.Ran

20、ge(E6 也可以先激活该工作表,然后再选择:Sheets(Sheet2.ActivateActiveSheet.Cells(6, 5.Select如何选择不同工作簿中的单元格?例如,要选择另一工作簿中的一个工作表上的单元格F7,可以使用下面的代码:Applicatio n.Goto Workbooks(BOOK2.XLS.Sheets(Sheet1.Cells(7, 6或:Application.Goto Workbooks(BOOK2.XLS.Sheets(Sheet1.Range(F7 也可以先激活该工作簿中的工作表,然后再选择:Workbooks(BOOK2.XLS.Sheets(Sh

21、eet1.ActivateActiveSheet.Cells(7, 6.Select如何选择当前工作表中的单元格区域?例如,要选择当前工作表中的单元格区域C2:D10,可以使用下面的代码:ActiveSheet.Range(Cells(2, 3, Cells(10, 4.Select或:ActiveSheet.Range(C2:D10.Select或:ActiveSheet.Range(C2, D10.Select如何选择同一工作簿中另一工作表上的单元格区域?例如,要选择同一工作簿中另一工作表上的单元格区域D3: E11,可以使用下面的代码:Applicatio n.Goto ActiveWo

22、rkbook.Sheets(Sheet3.Ra nge(D3:E11 或:Application.GotoActiveWorkbook.Sheets(Sheet3.Range(D3, E11也可以先激活该工作表,然后再选择:Sheets(Sheet3.ActivateActiveSheet.Range(Cells(3, 4, Cells(11, 5.Select如何选择不同工作簿中工作表上的单元格区域?例如,要选择另一工作簿中某工作表上的单元格区域E4:F12,可以使用下面的代码:Applicatio n.Goto Workbooks(BOOK2.XLS.Sheets(Sheet1.Ra ng

23、e(E4:F12或:Application.Goto Workbooks(BOOK2.XLS.Sheets(Sheet1.Range(E4,F12也可以先激活该工作表,然后再选择:Workbooks(BOOK2.XLS.Sheets(Sheet1.ActivateActiveSheet.Range(Cells(4, 5, Cells(12, 6.Select如何在当前工作表中选择命名区域?例如,要选择当前工作表中名为“ Test ”的区域,可以使用下面的代码:Ra nge(Test.Select或: Application.Goto Test如何选择同一工作簿中另一工作表上的命名区域?例如,选

24、择同一工作簿中另一工作表上名为“Test ”的区域,可使用下面的代码:Application.Goto Sheets(Sheet1.Range(Test也可以先激活工作表,再选择:Sheets(Sheet1.ActivateRa nge(Test.Select如何选择不同工作簿中工作表上的命名区域?例如,要选择不同工作簿中工作表上名为“Test ”的区域,可使用下面的代码:Applicatio n.Goto Workbooks(BOOK2.XLS.Sheets(Sheet2.Ra nge(Test也可以先激活工作表,再选择:Workbooks(BOOK2.XLS.Sheets(Sheet2.A

25、ctivateRa nge(Test.Select如何选择与当前单元格相关的单元格?例如,要选择距当前单元格下面5 行左侧 4 列的单元格,可以使用下面的代码:ActiveCell.Offset(5, -4.Select要选择距当前单元格上方 2 行右侧 3 列的单元格,可以使用下面的代码:ActiveCell.Offset(-2, 3.Select注意:一定要保证当前单元格与所选单元格之间的距离在工作表范围内,否则会出 错。如何选择与另一单元格(不是当前单元格相关的单元格?例如,要选择距单元格 C7 下方 5 行右侧 4 列的单元格,可以使用下面的代码:ActiveSheet.Cells(7

26、, 3.Offset(5, 4.Select或:ActiveSheet.Range(C7.Offset(5, 4.Select如何选择偏离指定区域的一个单元格区域?例如,要选择与名为“ Test”的区域大小相同但在该区域下方4 行右侧 3 列的一个区域,可以使用下面的代码:ActiveSheet.Range(Test.Offset(4, 3.Select如果该命名区域不在当前工作表中,可以先激活该工作表,然后再选择,如下面的代码:Sheets(Sheet3.ActivateActiveSheet.Ra nge(Test.0ffset(4, 3.Select如何选择一个指定的区域并扩展区域的大小

27、?例如,要选择当前工作表中名为“ Database”区域,然后将该区域向下扩展5 行,可以使用下面的代码:Ran ge(Database.SelectSelectio n.Resize(Selectio n.Rows.Co unt + 5, Selectio n. Colu mn s.Cou nt.Select如何选择一个指定的区域,再偏离,然后扩展区域的大小?例如,选择名为“ Database”区域下方 4 行右侧 3 列的一个区域,然后扩展 2 行和 1 列,可以使用下面的代码:Ran ge(Database.SelectSelectio n.Offset(4, 3.Resize(Sele

28、ctio n.Rows.Cou nt + 2,Select ion .Colu mn s.Co unt + 1.Select如何选择两个或多个指定区域?例如,为了同时选择名为“ Test”和“Sample”的两个区域,可以使用下面的代码:Applicati on.Union (Ra nge(Test, Ran ge(Sample.Select注意,这两个区域须在同一工作表中,如下面的代码:Set y = Application.Union(Range(Sheet1!A1:B2, Range(Sheet1!C3:D4但 Union 方法不能处理不同工作表中的区域,可下面的代码:Set y = A

29、pplication.Union(Range(Sheet1!A1:B2, Range(Sheet2!C3:D4将会出错。如何选择两个或多个指定区域的交叉区域?例如,要选择名为“ Test”和“Sample的两个区域的交叉区域,可以使用下面的代码:Applicati on.ln tersect(Ra nge(Test, Ran ge(Sample.Select注意,两个区域必须在同一工作表中F 面的示例使用了如下图所示的工作表ABC1MamsSalesQuantity2a$1053b10c$10556Tot al$20如何选择连续数据列中的最后一个单元格?例如,要选择一个连续列中的最后一个单元格

30、,可以使用下面的代码:ActiveSheet.Ra nge(a1.E nd(xlDow n.Select该代码使用在上面的工作表中,单元格A4 被选择。如何选择连续数据列底部的空单元格?例如,要选择连续单元格区域下面的单元格,可以使用下面的代码:ActiveSheet.Range(a1.End(xlDown.Offset(1, O.Select该代码使用在上面的工作表中,单元格A5 被选择。如何选择某列中连续数据单元格区域?例如,要选择一列中的连续数据单元格区域,可以使用下面的代码:ActiveSheet.Range(a1, ActiveSheet.Range(a1.End(xlDown.Se

31、lect 或:ActiveSheet.Range(a1: &ActiveSheet.Ra nge(a1.E nd(xlDow n.Address.Select该代码使用在上面的工作表中,单元格区域A1: A4 将被选择。如何选择某列中非连续数据单元格区域?例如,要选择某列中非连续数据单元格区域,可以使用下面的代码:ActiveSheet.Ra nge(a1, ActiveSheet.Ra nge(a65536.E nd(xlUp.Select或:ActiveSheet.Range(a1: &ActiveSheet.Ra nge(a65536.E nd(xlUp.Address.Select该代

32、码使用在上面的工作表中,单元格区域A1: A6 将被选择。如何选择一个矩形(规则的单元格区域?要选择围绕某单元格的一个矩形区域,可以使用CurrentRegion 方法。CurrentRegion方法将选择四周被空行和空列围绕的区域,如下面的代码:ActiveSheet.Ra nge(a1.Curre ntRegio n.Select该代码使用在上面的工作表中,将选择单元格区域A1: C4 也可以使用下面的代码:ActiveSheet.Ra nge(a1,ActiveSheet.Ra nge(a1.E nd(xlDow n.E nd(xlToRight.Select或:ActiveSheet.

33、Range(a1: &ActiveSheet.Ra nge(a1.E nd(xlDow n.En d(xlToRight.Address.Select若想选择单元格区域 A1: C6,可使用下面的代码:lastCol = ActiveSheet.Ra nge(a1.E nd(xlToRight.Colu mnlastRow = ActiveSheet.Cells(65536, lastCol.E nd(xlUp.RowActiveSheet.Range(a1, ActiveSheet.Cells(lastRow, lastCol.Select或:lastCol = ActiveSheet.Ra

34、 nge(a1.E nd(xlToRight.Colu mnlastRow = ActiveSheet.Cells(65536, lastCol.E nd(xlUp.RowActiveSheet.Ra nge(a1: & ActiveSheet.Cells(lastRow, lastCol.Address.Select 如何选择多个不同长度的非连续列?例如,有下图所示的工作表:K.BCD111112222233333444455556要同时选择 A 列和 C 列中的数据,即单元格区域 A1:A3 和 C1:C6,可使用下面的代 码:StartRa nge = A1En dRa nge = C1

35、Set a = Ran ge(StartRa nge, Ran ge(StartRa nge.E nd(xlDow nSet b = Ran ge(E ndRa nge, Ran ge(E ndRa nge.E nd(xlDow nUnion(a, b.Select注:使用 Applicati on .Goto方法,如果指定另一工作表(不是当前工作表中的指定区域,在 Range 属性中使用两个 Cells 属性时,则必须包括 Sheets 对象,如:Applicati on .GotoSheets(Sheet1.Ra nge(Sheets(Sheet1.Ra nge(Sheets(Sheet1

36、.Cells(2, 3,Sheets(Sheet1.Cells(4, 5在 VBA 中,Range 对象既可表示单个单元格,也可表示单元格区域。下面的内容说明 了标识和处理 Range 对象最常用的方法。引用工作表上的所有单元格如果对工作表应用 Cells属性时不指定索引号,该方法将返回代表工作表上所有单元格的 Range 对象。以下 Sub 过程清除活动工作簿中 Sheetl 上的所有单元格的内 容。Sub ClearSheet(Worksheets(Sheet1.Cells.ClearCo nte ntsEnd Sub使用 A1 表示法引用单元格和区域Ran ge(A:A,C:C,F:FA

37、、C 和 F 列可使用 Range 属性引用 A1 引用样式中的单元格或单元格区域。下述子例程将单元格 区域A1:D5 的字体设置为加粗。Sub FormatRa nge(Workbooks(Book1.Sheets(Sheet1.Ra nge(A1:D5 _.Fon t.Bold = TrueEnd Sub下表演示了使用 Range属性的一些 A1 样式引用。引用含义Ran ge(A1单元格 A1Ran ge(A1:B5从单元格 A1 到单元格 B5 的区域Ran ge(C5:D9,G9:H16多块选定区域Ran ge(A:AA 列Ran ge(1:1第一行Ran ge(A:C从 A 列到

38、C 列的区域Ran ge(1:5从第一行到第五行的区域Ran ge(1:1,3:3,8:8第 1、3 和 8 行End Sub引用行和列 可用 Rows 属性或 Columns 属性来处理整行或整列。这两个属性返回代表单元格区域 的 Range 对象。在下例中,Rows(1 返回 Sheetl 上的第一行,然后将区域字体加 粗。Sub RowBold(Worksheets(Sheet1.Rows(1.Fo nt.Bold = TrueEnd Sub下表举例说明了使用 Rows 和 Columns 属性的一些行和列的引用引用含义Rows(1第一行Rows工作表上所有的行Colum ns(1第一列

39、Colu mn s(A第一列Colu mns工作表上所有的列若要同时处理若干行或列,可创建一个对象变量并使用Union 方法,将对 Rows 属性或 Columns 属性的多个调用组合起来。下例将活动工作簿中第一张工作表上的第一 行、第三行和第五行的字体设置为加粗。Sub SeveralRows(Worksheets(Sheet1.ActivateDim myUnion As RangeSet myUnion = Union(Rows(1, Rows(3, Rows(5myUnion .F on t.Bold = TrueEnd Sub使用索引号引用单元格通过使用行列索引号,可用Cells属性

40、引用单个单元格。该属性返回代表单个单元格的 Range 对象。在下例中,Cells(6,1 返回 Sheetl 上的单元格 A6,然后将 Value 属性设置为10。Sub En terValue(Worksheets(Sheet1.Cells(6, I.Value = 10End Sub因为可用变量替代编号,所以Cells 属性非常适合于在单元格区域中循环,如下例中所示。Sub CycleThrough(Dim Coun ter As In tegerFor Cou nter = 1 To 20Worksheets(Sheet1.Cells(Counter, 3.Value = Counte

41、rNext Cou nterEnd Sub如果要同时更改某个区域中所有单元格的属性(或将方法应用于该区域中的所有单元 格),建议使用 Range 属性。使用快捷表示法引用单元格可用方括号将 A1 引用样式或命名区域括起来,作为Range 属性的快捷方式。这样就不必键入单词“ Range或使用引号了,如下例中所示。Sub ClearRa nge(Worksheets(Sheet1.A1:B5.ClearCo nte ntsSub SetValue(MyRa nge.Value = 30End Sub使用 Range 对象引用单元格如果将对象变量设置为 Ran ge 对象,即可用变量名轻松地操作单

42、元格区域。以下过程将创建对象变量 myRange,然后将活动工作簿中 Sheetl上的区域A1:D5赋 予该变量。随后的语句用该变量名称代替Ran ge 对象,以修改该区域的属性。Sub Ran dom(Dim myRa nge As RangeSet myRa nge = Worksheets(Sheet1.Ra nge(A1:D5myRa nge.Formula = =RAND(myRa nge.F on t.Bold = TrueEnd Sub引用命名区域用名称比用 A1 样式记号更容易标识单元格区域。若要命名选定的单元格区域,请单 击编辑栏左端的名称框,键入名称,再按Enter。引用命

43、名区域以下示例引用名为“ MyBook.xls ”的工作簿中名为“ MyRange 的区域。Sub FormatRa nge(Ra nge(MyBook.xls!MyRa nge.Fo nt.ltalic = TrueEnd Sub以下示例引用名为“ Report.xls ”的工作簿中特定于工作表的区域“Sheet1!Sales ”。Sub FormatSales(End IfRan ge(Report.xlsSheet1!Sales.BorderArou nd Weight:=xlthinEnd Sub要选定命名区域,可使用 GoTo 方法,该方法将激活工作簿和工作表,然后选定该区 域。Su

44、b ClearRa nge(Applicatio n.Goto Refere nee:二MyBook.xls!MyRa ngeSelectio n.ClearC ontentsEnd Sub以下示例显示对于活动工作簿将如何编写与上例相同的过程。Sub ClearRa nge(Applieati on .Goto Refere nee:二MyRa ngeSelectio n.ClearC ontentsEnd Sub在命名区域中的单元格上循环下例用 For Each.Next循环语句在命名区域中的每一个单元格上循环。如果该区域中的任一单元格的值超过 limit 的值,就将该单元格的颜色更改为黄色

45、。Sub ApplyColor(Const Limit As In teger = 25For Each c In Ran ge(MyRa ngeIf c.Value Limit The nc.In terior.Colorl ndex = 27Next cEnd Sub引用多个区域使用适当的方法可以很容易地同时引用多个单元格区域。可用Range 和 Union 方法引用任意组合的单元格区域;用 Areas 属性可引用工作表上选定的一组单元格区域。使用 Range 属性通过在两个或多个引用之间插入逗号,可使用Range 属性引用多个区域。以下示例清除了 Sheetl 上三个区域的内容。Sub

46、ClearRa nges(Worksheets(Sheet1.Ra nge(C5:D9,G9:H16,B14:D18. _ClearC ontentsEnd Sub命名区域使得用 Range 属性处理多个区域更加容易。以下示例可在所有这三个命名区 域处于同一工作表时运行。Sub ClearNamed(Ran ge(MyRa nge, YourRa nge, HisRa nge.ClearCo ntentsEnd Sub使用 Union 方法使用 Union 方法可将多个区域组合到一个Range 对象中。以下示例创建了名为myMultipleRange 的 Range 对象,并将其定义为区域 A

47、1:B2 禾口 C3:D4 的组合,然后 将该组合区域的字体设置为加粗。Sub MultipleRa nge(Dim r1, r2, myMultipleRa nge As RangeSet r1 = Sheets(Sheet1.Ra nge(A1:B2Set r2 = Sheets(Sheet1.Ra nge(C3:D4Set myMultipleRa nge = Union (r1, r2myMultipleRa nge.F on t.Bold = TrueEnd Sub使用 Areas 属性可用 Areas 属性引用选定的单元格区域或多块选定区域中的区域集合。下述过程计算 选定区域中的块

48、数目,如果有多个块,就显示一则警告消息。Sub Fi ndMultiple(If Selection.Areas.Count 1 ThenMsgBox 不能对多个选区进行操作.End IfEnd Sub处理三维区域如果要处理若干工作表上相同位置的单元格区域,可用Array 函数选定两张或多张工作表。下例设置三维单元格区域的边框格式。Sub FormatSheets(Sheets(Array(Sheet2, Sheet3, Sheet5.SelectRan ge(A1:H1.SelectSelectio n.Borders(xlBotto m. Li neStyle = xlDoubleEnd Sub下例应用 FillAcrossSheets 方法,将 Sheet2 上的区域中的格式和所有数据传送到 活动工作簿中所有工作表上的相应区域。Sub FillAll(Worksheets(Sheet2.Ra nge(A1:H1 _.Borders(xlBotto Li neStyle = xlDoubleWorksheets.FillAcrossSheets (Worksheets(Sheet2 _.Ra nge(A1:H1End Sub

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!