![](https://csdnimg.cn/release/download_crawler_static/10038234/bg4.jpg)
操作不能在选定区域内的多个单元格块上同时执行; 必须在选定区域内的单元格
块数Areas.Count上循环, 对每个单独的单元格块分别执行该操作。此时, 可用
Areas(index)从集合中返回单个Range对象,其中index为单元格块编号;如
Areas(1)。
5、 行与列:Rows、Columns、Row、Column
Rows、Columns分别代表活动工作表、单元格区域范围Range、指定工作表
中的所有行数、列数。对于一个多选单元格区域范围Range的Rows、Columns,
只返回该范围中第一个区域的行数、列数。例如,如果Range对象有两个区域
(areas)A1:B2和C3:D4,Rows.Count返回2而不是4。
可通过Rows(行号)、Columns(列号)来引用相应的行与列;如Rows(3)、
Columns(4)分别对应第三行、D列。
利用Rows、Column可以获得区域中第一块的第一行行号、第一列列号,所得值
均以十进制数表示。
三)、处理单元格
1、直接赋值与引用
将变量、常量值直接赋给单元格、或将单元格的值直接赋给变量、常量,这
是在Excel中最简单的单元格赋值及引用方法。如下例将工作表"Sheet1"A1单
元格的值赋给Integer变量I,并将I+1的值赋给当前工作表中的B1单元格:
Dim I As Integer
I=Worksheets("Sheet1").Cells(1,1)
Cells(1,2).Select '选定B1单元格,使其成为当前单元格
ActiveCell=I+1 '以I+1为当前单元格赋值
2、用公式赋值
在宏的使用中, 可能会更多地用公式来给单元格赋值。 如下例将相对于活动
单元格左侧第4列、 向上第6行至向上第2行的单元格数值之和赋给活动单元格
(以本行、本列为第0行、0列) :
ActiveCell.Formula="=AVERAGE(R[-6]C[-4]:R[-2]C[-4])"
3、引用其它工作表中的单元格
当赋值公式中需要引用其它工作表中的单元格时, 在被引用的单元格前加上
"工作表名! "即可。 如以下即在赋值中引用了"Sheet1"工作表中的A1至A4单元
格:
Range("E10").Formula="=SUM(Sheet1!R1C1:R4C1)"
但需注意的是:当被引用的工作表名中含有某些可能引起公式歧义的字符
时,需要用单引号'将工作表名括起来。如:
Worksheets("Sheet1").ActiveCell.Formula="=Max('1-1剖面'!D3:D5)"
4、引用其它工作簿中的单元格
在被引用单元格所在工作表名前加上"[工作簿名]", 即可引用其它工作簿中
的单元格。如:
ActiveCell.Formula="=MAX([Book1.xls]Sheet3!R1C:RC[4])"
同样需注意的是:当被引用的工作簿名中含有某些可能引起公式歧义的字符时,
需要用中括号"["、"]"及单引号'将工作簿名括起来。如:
Cells(1,2).Formula="=MIN('[1995-2000总结.xls]1995-1996年'!
$A$1:$A$6)"
5、避免循环引用