4.5 核心,至关重要的Range对象

Range对象代表工作表中的单元格或单元格区域,包含在Worksheet对象中。

4.5.1 多种方法引用Range对象

操作单元格,需要先引用单元格。

img357

信封上的收信地址,告诉邮递员应该把信投到哪家邮箱。只有写清楚地址,信才不会寄错。

引用单元格,就像写在信封上的地址,如果要把某商品的销售数量50保存到活动工作簿中Sheet1工作表的A1单元格中,代码为:

img358

这里的Range(“A1”)就是引用A1单元格的一种形式。在VBA里,引用单元格有多种方法。

img062 Worksheet(或Range)对象的Range属性

img359

如果单元格已经被定义为名称,参数还可以是表示名称名的字符串或字符串变量,如图4-28所示。

img360

图4-28 定义的名称

如果要引用多个不连续的区域,可以在各区域间添加逗号,如图4-29所示。

img361

图4-29 引用多个不连续区域

如果想引用相交区域(公共区域),可以在多个区域间添加空格,如图4-30所示。

img362

图4-30 引用相交区域

还可以使用两个参数来引用两个区域围成的矩形区域,如图4-31所示。

img363

img364

图4-31 使用两个参数引用单元格

img062 Worksheet(或Range)对象的Cells属性

这是引用Range对象的另一种形式,返回指定工作表或单元格区域中指定行与列相交的单元格。

img365

如果引用的是Range对象的Cells属性,将返回指定单元格区域中指定行与列相交的单元格,如图4-32所示。

img366

img367

图4-32 引用Range对象的Cells属性

Cells属性还可以用作Range属性的参数:

img368

Cells可以只使用一个参数:

img369

如果引用的是Worksheet对象的Cells属性,在Excel 2003中索引号的值为1到16777216(65536行×256列)。

单元格按从左往右,从上到下的顺序编号,即A1为第1个单元格,B1为第2个单元格,C1为第3个单元格……A2为第257个单元格……如图4-33所示。

img370

图4-33 工作表中单元格的索引号

如果引用的是Range对象的Cells属性,索引号的范围为1到这个单元格区域包含的单元格的个数。

img371

但索引号可以大于单元格区域里的单元格个数,如果索引号大于单元格个数,系统会自动将单元格区域在行方向上进行扩展(列数不变),然后再引用,如图4-34所示。

img372

图4-34 当索引号大于单元格个数时

如果不使用任何参数,Cells属性将返回指定对象中的所有单元格:

img373