-
Excel
中
R1C1
样式引用详解
这篇文章根据
excelhome
论坛中的两个帖子进行整理,稍作了修改。
以下内容来自第一个帖子,
点击这里可以查看原文
。
一、引用单元格:
R1C1
样式与
A1
样式比较
DanBricklin
和
BobFrankston
使用
A1
表示电子表格左上角的单元格,
Mitch Kapor
在
Lotus 1-2-3
中也是使用这种编址方案。
Microsoft
试图改变这种趋势,
采用了名为
R1C1
样式编 址方案。
单元格
A1
称为
R1C1
,
因为它位于第一行,第 一列(
Row 1, Column 1
)。
在
20
世纪
80
年代和
90
年代初期,
A1
样式称为 了标准,
Microsoft
公司认识到了危机,
最终让
excel
接受了
A1
样式,并同时支持
R1C1
样式编址方案。当前,
excel
默认使用
A1
样式。
为什么学习
R1C1
样式
?
答案是:
1
,
excel
的宏录制器采用的是
R1C1样式录制公式。
2
,
R1C1
样式比之A1
样式有更高的效率,尤其是对于公式,编写的代码效率会更高。
< br>3
,在
BVA
编辑器中,创建数组公式或基于公式设置条件格式时,采用的是< br>R1C1
样
式输入公式。
怎么切换
R1C1
样式?
单击
Ofic e
按钮选择
Excel
选项,在公式类别中选择复选框
“R1C1
引 用样式
”
。版面上
唯一不同是列标
A,B,C--
变成数字
1,2,3
,单元格
C5
变为
R5C2
二、
EXCEL
公式的神奇之处
如动画所示,
Excel
能智能的填充公式,并向下复制,第一次看到一定感觉非常惊奇。
实际这并不惊奇,因为,
Excel
内部使用的是
R1C1
样式的公式,以< br>A1
样式显示地址
和公式。
如果将动画所示的工作表切换成
R1C1< br>样式表示法,将发现
C2:C7
的公式都是
形同的。
三、在
VBA
中采用
A1
样式与
R1C1
样式之比较
如上述动画实例,如用
A1
样式编写代码,代码可以类似下面这样:
Sub
chengji()
Dim
Finalrow
As
Integer
Finalrow = Cells(, 2).End(xlUp).Row
'
求第二列数据
行数
Range(
Range(
End
Sub
上述代码在第二行输入公式,再向下复制公式
如果用
R1C1
样式只需一条语句就可整列输入公式
Sub
chengji()
Dim
Finalrow
As
Integer
Finalrow = Cells(, 2).End(xlUp).Row
'
求第二列数据
行数
Range(
End
Sub
使用
R1C1
样式的优点是,所有
C
列的公式都是 相同的,不需要改变
四、怎么引用
R1C1
样式
R1C1
样式采用
R
来表示行,
C
来表示列
4.1
样式的相对引用
对于列正数表示向右移指定数量的列,负数反之。
对于行正数表示向下移指定数量的行,负数反之。
如果省略掉R
或
C
后面的方括号,表示和引用单元格在同行或同列。
4.2
样式的绝对引用
在
A1
样式中 使用绝对引用要在行号或列号字母
前使用
$$
。但在
R1C1
样式中只 需
省略
方括号
就行了,是不是很简单
!!!!!!!!
如下所示代码
:
Sub
huizong()
Dim
Finalrow
As
Integer
Finalrow = Cells(, 2).End(xlUp).Row
Cells(Finalrow + 1, 1).Value =
汇总
Cells(Finalrow + 2, 1).Resize(1, 3).FormulaR1C1 =
End
Sub
引用
R2C: R[-2]C
表示将当前列第
2
行到上
2
行中,同列数据的和,通过 使用
R1C1
混合引用,可以使用公式求行数不确定的数据,
4.3
引用整行和整列
有时候需要编写整列的公式。< br>例如求
G
列的最大值,
如不知道
G
列包含多少行,
可 在
单元格中输入公式
=MAX
(
$$G:$$G
),要找出第一行中最大 的值可用
=MAX($$1:$$1)
或
R1C1
公式
=M AX(R1)
。
可以整行、整列使用相对引用。要计算当前单元格 上一行的平均值,可用
=AVERAGE(R[-1])
如何在
D5
引用其周围的单元格?
五、
R1C1
样式的经典实例
,一种有趣的行为
创建
R1C1
公式实际上比
A1
公式更 直观。
一个演示
R1C1
公式的经典实例是创建乘法
表。在
exce l
中,使用单个混合引用公式就可创建乘法表。
5.1
创建乘法表
在
B1
:
M1
中输 入数字
1-12
,在
A2:a13
中也输入数字
1-12
,现在创建
b2
:
m13
中所
有单元格公式,它计算第一行和第一列 的乘积。用
R1C1
样式公式代码如下:
Sub
Multiplicationtable8()
Range(
=
Array(1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11, 12)
Range(
True
Range(
Range(
True
Range(
'
最合适的列宽
End
Sub
5.2
一种有趣的行为
尝试以下操作,将单元格指针移 到
F6
,单击
“
开发工具
”
--
”
录制宏
“
,然后单击
“
开发工
具
”
---
“使用相对引用
”
,输入公式
=a1
并按
ctrl+enter< br>键,以保留在
F6
键中。单击
“
停止录
制
”
按钮。
将得到一个只包含一行的代码的宏,它在当前的单元格输入公式,该 公式引用向上
5
行,向左
5
列的单元格:
Sub
宏
1()
aR1C1 =
End
Sub
现在将单元格指针移到
A1
并运行刚才的 宏,你可能会认为将导致运行错误
1004
,但
实际并没有出现这种错误。运行宏时, 单元格
A1
中的公式指向
=XF1048572
(
Excel200 3
指向
=IR65532
),这意味着
R1C1
公式从表的左侧绕回 到右侧。这是一个很有趣的行为,
但是可能宏将提供一个与用户期望不同的结果!!!!!!
乘法表实例:
六、条件格式中的
R1C1
样式应用
设置条件格式时,必须使用
R1C1
公式
,这很重要。文档没有明确之处这一点,但如
果不用
R1C1
公式,有时可能出问题,有研究发现,如果用
A1
公 式,每对
50
个单元格
设置条件格式,
将有一个单元格出现奇怪的 行为。
因为将
A1
引用转换为
R1C1
引用有时
存在二义性 ,例如,
R2
表示一个单元格,但可能被错误理解为整个第二行。
FormatConditions
对象用于设置条件格式。每个单元格可以有
3个
FormatConditions
,
下面的代码首先遍历所有工作表,删除每 个工作表中的条件格式,然后遍历每个工作表
中所有的非空单元格,并应用两种条件格式。
在第一种条件格式中,类型为
xlExpression
,这意味着 使用的是
“
公式
”
语法。首先
Foumula1
指定的公式 采用的是
R1C1
表示法。
第二个条件格式使用
xlCellValue
类型,
这需要指定一个运算符和一个值。
在添加条件
后,为条件
1
和条件
2
设置字体的
ColorIndex
Sub
ApplySpecialFormattingALL()
For
Each
ws
In
eets
For
Each
cell
In
If
Not
IsEmpty(cell)
Then
'
单元格值是任意错误值时,
'
把字体颜色设置为与单元格底色相同的颜色(
即看不出错误
值
)
Type:=xlExpression,
-
-
-
-
-
-
-
-
本文更新与1970-01-01 08:00,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/555320.html
-
上一篇:没有了
下一篇:没有了