Range对象代表工作表中的单元格或单元格区域,包含在Worksheet对象中。
4.5.1 多种方法引用Range对象
操作单元格,需要先引用单元格。
信封上的收信地址,告诉邮递员应该把信投到哪家邮箱。只有写清楚地址,信才不会寄错。
引用单元格,就像写在信封上的地址,如果要把某商品的销售数量50保存到活动工作簿中Sheet1工作表的A1单元格中,代码为:
这里的Range(“A1”)就是引用A1单元格的一种形式。在VBA里,引用单元格有多种方法。
Worksheet(或Range)对象的Range属性
如果单元格已经被定义为名称,参数还可以是表示名称名的字符串或字符串变量,如图4-28所示。
图4-28 定义的名称
如果要引用多个不连续的区域,可以在各区域间添加逗号,如图4-29所示。
图4-29 引用多个不连续区域
如果想引用相交区域(公共区域),可以在多个区域间添加空格,如图4-30所示。
图4-30 引用相交区域
还可以使用两个参数来引用两个区域围成的矩形区域,如图4-31所示。
图4-31 使用两个参数引用单元格
Worksheet(或Range)对象的Cells属性
这是引用Range对象的另一种形式,返回指定工作表或单元格区域中指定行与列相交的单元格。
如果引用的是Range对象的Cells属性,将返回指定单元格区域中指定行与列相交的单元格,如图4-32所示。
图4-32 引用Range对象的Cells属性
Cells属性还可以用作Range属性的参数:
Cells可以只使用一个参数:
如果引用的是Worksheet对象的Cells属性,在Excel 2003中索引号的值为1到16777216(65536行×256列)。
单元格按从左往右,从上到下的顺序编号,即A1为第1个单元格,B1为第2个单元格,C1为第3个单元格……A2为第257个单元格……如图4-33所示。
图4-33 工作表中单元格的索引号
如果引用的是Range对象的Cells属性,索引号的范围为1到这个单元格区域包含的单元格的个数。
但索引号可以大于单元格区域里的单元格个数,如果索引号大于单元格个数,系统会自动将单元格区域在行方向上进行扩展(列数不变),然后再引用,如图4-34所示。
图4-34 当索引号大于单元格个数时
如果不使用任何参数,Cells属性将返回指定对象中的所有单元格: