引用区域

区域,指的是连续引用行和列方向上的m×n个单元格得到的矩形区域。单元格可看作是大小为1×1的特殊区域。区域的构造有多种方法,下面分一般区域、用活动单元格构造的区域、用偏移得到的区域、用名称引用区域和引用区域内的单元格等几种情况进行介绍。

引用一般区域

引用一般区域,需要指定区域左上角和右下角单元格的坐标,二者之间用冒号隔开组成字符串作为工作表对象Range(range)属性的唯一参数,或者各自作为字符串作为Range(range)属性的两个参数。指定区域左上角和右下角单元格的坐标时也可以使用工作表对象的Range(range)属性或Cells(cells)属性来获取。下面引用和选择一个区域A3:C8:

code.python
>>> sht.Range("A3:C8").Select()
>>> sht.Range("A3","C8").Select()
>>> sht.Range(sht.Range("A3"), sht.Range("C8")).Select()
>>> sht.Range(sht.Cells(3,1),sht.Cells(8,3)).Select()

效果如图2-2所示。

Document Image

图2-2 选择一个区域

引用用活动单元格构造的区域

区域起点或终点为活动单元格时,用活动单元格的引用进行替换即可。下面指定要引用区域的左上角单元格为A3,右下角单元格为活动单元格,选择它:

code.python
>>> sht.Range("A3", app.ActiveCell).Select()

引用偏移构造的区域

通过对已有区域进行整体偏移,可以得到一个新的区域。使用区域对象的Offset方法进行偏移。分别对区域的左上角和右下角进行平移后,重新组合成一个区域进行选择。

code.python
>>> sht.Range(sht.Range("A3").Offset(2),sht.Range("C8").Offset(2)).Select() #A4:C9
>>> sht.Range(sht.Range("A3").Offset(1,2),sht.Range("C8").Offset(1,2)).Select()   #B3:D8
>>> sht.Range(sht.Range("A3").Offset(2,2),sht.Range("C8").Offset(2,2)).Select()   #B4:D9

用名称引用区域

如果区域有名称,可以用名称引用区域。下面给A3:C8区域命名为MyData,然后用该名称引用区域。

code.python
>>> cl = sht.Range("A3:C8")
>>> cl.Name = "MyData"
>>> sht.Range("MyData").Select()

引用区域内的单元格

引用区域内的单元格,有坐标索引、线性索引和切片等几种方法。

坐标索引,单元格在区域内的坐标是相对坐标,是相对于区域左上角计算得到的。跟前面区域偏移的计算方法相同。

code.python
>>> rng=sht.Range("B2:D5")
>>> rng(1,1).Select()   #以区域左上角单元格为起点进行偏移,注意基数为1

线性索引的索引参数只有一个,其值是对区域内的单元格按照先行后列的顺序进行编号得到的。编号是从1开始的,如下面格式所示。

1 2 3

4 5 6

对于给定的区域B2:D5,下面用线性索引引用单元格D2。

code.python
>>> rng=sht.Range("B2:D5")
>>> rng(3).Select()