Excel精英培训网

 找回密码
 注册
查看: 1464|回复: 0

转:Range对象(四)

[复制链接]
发表于 2012-4-17 21:09 | 显示全部楼层 |阅读模式
5、Range对象的Range属性
通常情况下,Range属性都是作为Worksheet对象的属性来使用的。不过,Range属性也可以作为Range对象的属性来使用。例如:
Range("C3").Range("B2")
这个表达式是这么理解的:假设C3单元格为工作表的左上角单元格,B2表示相对于C3单元格,右移一列且下移一行的单元格,也就是D4单元格。
这种用法在使用相对引用时录制的宏代码中非常常见,不过,这种用法比较难于理解,所以较少使用。
6、Cells属性
Cells属性可以应用于Application对象、Worksheet对象或Range对象,它表示一个包含Worksheet对象或Range对象所有单元格的Range对象。例如:
ActiveSheet.Cells
Application.Cells
以上两个表达式都表示当前工作表的所有单元格。
由于Application对象的Cells属性是<Globals>的成员,所以我们可以直接用Cells表示包含当前工作表所有单元格的Range对象。
我们可以使用Range对象的Item属性来引用一个单元格,只要指定相对行和列的位置。行参数通过是一个数字,列参数则既可以是数字,也可以是字母。例如:
Cells.Item(2,2)
Cells.Item(2,"B")
以上两个表达式都表示当前工作表的B2单元格。
由于Item属性是Range对象的默认属性,所以,Item可以省略。例如:
Cells(2,2)
Cells(2,"B")
当我们要遍历一系列行和列时,Cells的行列数字参数就非常有用了。例如:
Public Sub FillCells()
Dim i As Integer, j As Integer
For i = 1 To 10
For j = 1 To 5
Cells(i, j).Value = i * j
Next j
Next i
End Sub
以上代码用两个循环遍历了1-10行和A-E的所有单元格并进行了赋值。运行结果如图2所示。



我们可以使用Cells属性来设置Range属性中的参数,从而定义一个Range对象。例如:
Range(Cells(1,1),Cells(10,5))
这个表达式表示当前工作表的A1:E10单元格。
这种引用方式非常有用,因为可以使用变量作为行列参数,就像前面那个循环示例所示。
像Range属性一样,我们也用Cells来引用非当前工作表的单元格。例如:
Worksheets("Sheet1").Cells(2,3)
假如我们要使用Cells属性来引用非当前工作表中的单元格区域,我们注意和前面Range属性一样的问题。我们必须为Cells属性指定完整引用。例如,假设工作表Sheet2是当前工作表,我们要引用工作表Sheet1中的A1:E10单元格,以下代码是错误的:
Sheets("Sheet1").Range(Cells(1,1), Cells(10,5)).Font.Bold = True
正确的写法是:
With Sheets("Sheet1")
.Range(.Cells(1, 1), .Cells(10, 5)).Font.Bold = True
End With
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-1 17:04 , Processed in 0.193216 second(s), 6 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表