Excel中R1C1样式引用详解 (2)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

E x c e l中R1C1样式引用详解??这篇文章根据excelhome论坛中的两个帖子进行整理,稍作了修改。

???以下内容来自第一个帖子,。

????一、引用单元格:R1C1样式与A1样式比较

???DanBricklin和BobFrankston使用A1表示电子表格左上角的单元格,MitchKapor在Lotus1-2-3中也是使用这种编址方案。

???Microsoft试图改变这种趋势,采用了名为R1C1样式编址方案。单元格A1称为R1C1,因为它位于第一行,第一列(Row1,Column1)。

???在20世纪80年代和90年代初期,A1样式称为了标准,Microsoft公司认识到了危机,最终让excel接受了A1样式,并同时支持R1C1样式编址方案。当前,?

excel默认使用A1样式。

???为什么学习R1C1样式

???答案是:

???1,excel的宏录制器采用的是R1C1样式录制公式。

???2,R1C1样式比之A1样式有更高的效率,尤其是对于公式,编写的代码效

率会更高。

???3,在BVA编辑器中,创建数组公式或基于公式设置条件格式时,采用的是R1C1样式输入公式。

???怎么切换R1C1样式?

???单击Ofice按钮选择Excel选项,在公式类别中选择复选框“R1C1引用样式”。版面上唯一不同是列标A,B,C--变成数字1,2,3,单元格C5变为R5C2

????二、EXCEL公式的神奇之处

???如动画所示,Excel能智能的填充公式,并向下复制,第一次看到一定感觉非常惊奇。

???实际这并不惊奇,因为,Excel内部使用的是R1C1样式的公式,以A1样式显示地址和公式。如果将动画所示的工作表切换成R1C1样式表示法,将发现C2:C7的公式都是形同的。

????三、在VBA中采用A1样式与R1C1样式之比较

???如上述动画实例,如用A1样式编写代码,代码可以类似下面这样:Sub?chengji()

????Dim?Finalrow?As?Integer

????Finalrow=Cells(Rows.Count,2).End(xlUp).Row?'求第二列数据行数

????Range("c2").Formula="=a2*b2"

????Range("C2").CopyDestination:=Range("C2:C"&Finalrow) End?Sub

???上述代码在第二行输入公式,再向下复制公式

???如果用R1C1样式只需一条语句就可整列输入公式

Sub?chengji()

????Dim?Finalrow?As?Integer

????Finalrow=Cells(Rows.Count,2).End(xlUp).Row?'求第二列数据行数

????Range("c2:c"&Finalrow).FormulaR1C1="=RC[-1]*RC[-2]"

End?Sub

???使用R1C1样式的优点是,所有C列的公式都是相同的,不需要改变????四、怎么引用R1C1样式

???R1C1样式采用R来表示行,C来表示列

???4.1样式的相对引用

???对于列正数表示向右移指定数量的列,负数反之。

???对于行正数表示向下移指定数量的行,负数反之。

???如果省略掉R或C后面的方括号,表示和引用单元格在同行或同列。???4.2样式的绝对引用

???在A1样式中使用绝对引用要在行号或列号字母前使用$。但在R1C1样式中只需省略方括号就行了,是不是很简单!!!!!!!!

???如下所示代码:

Sub?huizong()

????Dim?Finalrow?As?Integer

????Finalrow=Cells(Rows.Count,2).End(xlUp).Row

????Cells(Finalrow+1,1).Value="汇总"

????Cells(Finalrow+2,1).Resize(1,3).FormulaR1C1="=SUM(R2C :R[-2]C)"

End?Sub

???引用R2C:R[-2]C表示将当前列第2行到上2行中,同列数据的和,通过使用R1C1混合引用,可以使用公式求行数不确定的数据,

???4.3引用整行和整列

???有时候需要编写整列的公式。例如求G列的最大值,如不知道G列包含多少行,可在单元格中输入公式=MAX($G:$G),要找出第一行中最大的值可用?

=MAX($1:$1)或R1C1公式=MAX(R1)。

???可以整行、整列使用相对引用。要计算当前单元格上一行的平均值,可用

=AVERAGE(R[-1])

???如何在D5引用其周围的单元格?

????五、R1C1样式的经典实例,一种有趣的行为

???创建R1C1公式实际上比A1公式更直观。一个演示R1C1公式的经典实例是创建乘法表。在excel中,使用单个混合引用公式就可创建乘法表。

???5.1创建乘法表

???在B1:M1中输入数字1-12,在A2:a13中也输入数字1-12,现在创建b2:m13中所有单元格公式,它计算第一行和第一列的乘积。用R1C1样式公式代码如下:

Sub?Multiplicationtable8()

????Range("b1:m1").Value=Array(1,2,3,4,5,6,7,8,9,10,11,12 )

????Range("b1:m1").Font.Bold=?True

相关文档
最新文档