range是一种计算机术语,在
Excel中,Range集合代表某一
单元格、某一行、某一列、某一选定区域(该区域可包含一个或若干连续
单元格区域),或者某一三维区域。可用 Range(arg)(其中 arg 为区域名称)来返回代表单个单元格或单元格区域的
Range 对象。
介绍
range() 函数创建并返回一个包含指定范围的元素的数组。使用格式为range(first,second,step),该函数创建一个数组,包含从 first 到 second (包含 first 和 second)之间的整数或字符。如果 second 比 first 小,则返回反序的数组。
Range属性
下例将单元格 A1 中的值赋给单元格 A5。
下例设置单元格区域 A1:H8 中每个单元格的公式,用
随机数填充该区域。在没有
对象识别符(句号左边的对象)的情况下,使用 Range 属性将返回活动表上的一个区域。如果活动表不是
工作表,则该方法无效。在没有明确的对象识别符的情况下,使用 Range 属性之前,可用 Activate 方法来激活工作表。
下例清除区域 Criteria 中的内容。
如果用文本参数指定区域地址,必须以 A1 样式记号指定该地址(不能用 R1C1 样式记号)。
Cells属性
可用 Cells(row,column)(其中 row 为
行号,column 为列标)返回单个
单元格。下例将单元格 A1 赋值为 24。
Worksheets⑴.Cells(1,1).Value = 24
下例设置单元格 A2 的公式。
工作表激活以后,使用 Cells 属性时不必明确声明工作表(它将返回
活动工作表上的
单元格)。
Sub SetUpTable()
For TheYear = 1 To 5
Cells(1,TheYear + 1).Value = 1990 + TheYear
Next TheYear
For TheQuarter = 1 To 4
Next TheQuarter
End Sub
虽然可用
Visual Basic 字符串函数转换 A1 样式引用,但使用 Cells(1,1) 记号更为简便(而且也是更好的编程习惯)。
可用 expression.Cells(row,column) 返回区域中的一部分,其中 expression 是返回
Range 对象的
表达式,row 和 column 为相对于该区域左上角的偏移量。下例设置
单元格 C5 中的公式。
关系
Range 和 Cells
可用 Range(cell1,cell2) 返回一个 Range 对象,其中 cell1 和 cell2 为指定起始和终止位置的 Range 对象。下例设置单元格区域 A1:J10 的边框线条的样式。
With Worksheets⑴
.Range(.Cells(1,1),.Cells(10,10)).Borders.LineStyle = xlThick
End With
注意每个 Cells 属性之前的
句点。如果前导的 With 语句应用于该 Cells 属性,那么这些句点就是必需的。本示例中,句点指示
单元格处于第一张
工作表上。如果没有句点,Cells 属性将返回
活动工作表上的单元格。
Offset属性
可用 Offset(row,column)(其中 row 和 column 为行
偏移量和列偏移量)返回相对于另一区域在指定偏移量处的区域。下例选定位于当前选定区域左上角
单元格的向下三行且向右一列处的单元格。由于必须选定位于
活动工作表上的单元格,因此必须先激活
工作表。
'Can't select unless the sheet is active
Union方法
可用 Union(range1,range2,...) 返回多块区域,即该区域由两个或多个连续的
单元格区域所组成。下例创建由单元格区域 A1:B2 和 C3:D4 组合定义的对象,然后选定该定义区域。
Dim r1 As Range,r2 As Range,myMultiAreaRange As Range
Set myMultiAreaRange = Union(r1,r2)
myMultiAreaRange.Select
使用包含若干块的选定区域时,Areas 属性很有用。它将一个多块选定区域分割为单个的
Range 对象,然后将这些对象作为一个集合返回。使用返回的集合的 Count 属性可检测一个选定区域是否包含多块区域,如下例所示。
Sub NoMultiAreaSelection()
NumberOfSelectedAreas = Selection.Areas.Count
If NumberOfSelectedAreas > 1 Then
End If
End Sub
举例
例子 1
输出:
Array ([0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] == 5)
例子 2
输出:
例子 3
输出: