在VBA中,可以通过Worksheet对象的Range属性来引用单元格,这也是引用单元格 最常用的一种方法。Range属性的参数有很多种设置方法。不同设置方法引用到的单元格区域也不同。
Worksheet对象和Range对象都拥有Cells属性。该属性可以通过单元格所在的行、列号, 或单元格的索引号来引用单元格。Cells属性只能引用单个单元格,但是因为其参数可以使用变量,所以使用起来最灵活。
将表示单元格地址的字符串(A1 样式)设置为Range属性的参数,即可引用到该地址表示的单元格区域,如下图所示:
如果一个单元格区域已经被定义为名称,如图 3 -35 所示。
图 3-35 将A1:B10 区域定义为名称C_Data
要引用该名称表示的单元格,也可以将Range的参数设置为表示名称名的字符串,如下图所示:
引用多个不连续的单元格区域
如果要引用多个不连续的单元格区域,可以将Range的参数设置为一个用逗号分隔的、由多个单元格地址(A 1 样式)组成的字符串,如下图所示:
执行这行代码的效果如图 3-36 所示。
图 3-36 选中A 1:A 4、B 6:E10 和C 2:F 4 三个区域
执行代码后,同时选中了 3 个区域。
引用多个区域的公共区域
如果要引用多个区域的公共区域,可以将Range的参数设置为一个用空格分隔的、由多个单元格地址组成的字符串,如下图所示:
执行这个过程后的效果如图 3-37 所示。
图 3-37 在B 1:B 10 和A 4:D 6 的公共区域中输入数值100
引用两个区域围成的最小矩形区域
如果替Range设置两个用逗号隔开的参数,引用到的是这两个区域围成的矩形区域,如下图所示:
图 3-38 引用两个单元格区域围成的矩形区域
Range属性返回的,是包含参数中两个单元格区域的最小矩形区域。
通过行、列号
引用工作表中的某个单元格
如果要在活动工作表中第 3 行与第 4 列交叉的单元格——D 3 中输入 20,可以将代码写为:
执行这个过程后的效果如图 3-39 所示。
图 3-39 在第 3 行与第 4 列交叉的单元格中输入20
使用Cells属性引用单元格时,表示行号的参数(第 1 参数)只能设置为数字,但第 2 参数可以设置为数字,也可以设置为表示列标的字母,如前面的代码还可以写为:
通过行、列号
引用区域中的某个单元格
Range对象的Cells属性,返回的是该Range对象中指定行与列交叉的单元格。如想在 B 3 :F 9 中第 2 行与第 3 列交叉的单元格中输入数值 100,代码可以写为:
执行这个过程的结果如图 3 - 40 所示。
图 3-40 通过Cells属性引用区域中的某个单元格
B3 :F9 中第 2 行与第 3 列交叉的单元格,就是工作表中的D4单元格。
通过索引号引用单个单元格
Worksheet对象的Cells属性,返回指定工作表中所有单元格组成的集合,可以通过索引号引用该集合中的某个单元格,如:
或许有同学会有疑问:第 2 个单元格是哪个单元格?Excel是按什么规则确定单元格的索引号的?
想知道Cells(2)引用的是哪个单元格,可以先执行这个过程,看看被写入数据的是哪个单元格,如图 3 -41 所示。
图 3-41 在活动工作表的第 2 个单元格输入 200
显然,工作表中索引号是 2 的单元格是B 1。只要改变代码中的索引号,再观察执行代码的结果,即可知道Excel是怎样为单元格编索引号的:Excel按从左到右,从上到下的顺序为单元格编索引号,即A1 为第 1 个单元格,B1 为第 2 个单元格,C1 为第 3 个单元格……A2 为第 16385 个单元格……如图 3-42 所示。
图 3-42 工作表中各单元格的索引号
如果要引用D6 单元格,索引号应设置为 81924,
可以将代码写为:Cells(81924)。
在VBA中, 如果引用的是 Worksheet对象的 Cells属 性, 可设置的索引号为 1 到 17179869184(1048576 行×16384 列)的自然数,如果引用的是Range对象的Cells属性,索引号的范围通常为 1 到这个区域包含的单元格的个数。
通过地址和索引号引用单元格的小窍门,你学会了吗?
联系客服