




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Excel中 R 1 C 1样式引用详解这篇文章根据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接受了
2、A1样式,并同时支持R1C1样式编址方案。当前,?excel默认使用A1样式。为什么学习R1C1样式答案是:1, excel的宏录制器采用的是R1C1样式录制公式。2,R1C1样式比之A1样式有更高的效率,尤其是对于公式,编写的代码效率会更咼3,在 BVA 编辑器中,创建数组公式或基于公式设置条件格式时, 采用的是 R1C1样式输入公式。怎么切换 R1C1 样式?单击Ofice按钮选择Excel选项,在公式类别中选择复选框“ R1C引用样式”版面上唯一不同是列标 A,B,C-变成数字1,2,3,单元格C5变为R5C2二、EXCEL 公式的神奇之处如动画所示, Excel 能智能的填充公式,并向
3、下复制,第一次看到一定感觉非 常惊奇。实际这并不惊奇,因为,Excel内部使用的是R1C1样式的公式,以A1样式显 示地址和公式。如果将动画所示的工作表切换成 R1C1 样式表示法,将发现 C2:C7 的公式都是形同的。三、在 VBA 中采用 A1 样式与 R1C1 样式之比较如上述动画实例,如用 A1 样式编写代码,代码可以类似下面这样:Subchengji()DimFinalrow AsIntegerFinalrow = Cells, 2).End(xlUp).Row求第二列数据行数Range(c2).Formula = =a2*b2Range(C2).Copy Destination:=
4、Range(C2:C & Finalrow)EndSub上述代码在第二行输入公式,再向下复制公式如果用 R1C1 样式只需一条语句就可整列输入公式Subchengji()Dim Finalrow AsIntegerFinalrow = Cells, 2).End(xlUp).Row求第二列数据行数Range(c2:c & Finalrow).FormulaR1C1 = =RC-1*RC-2EndSub使用R1C1样式的优点是,所有C列的公式都是相同的,不需要改变四、怎么引用 R1C1 样式R1C1样式采用R来表示行,C来表示列样式的相对引用对于列正数表示向右移指定数量的列,负数反之对于行正数表
5、示向下移指定数量的行,负数反之。如果省略掉 R 或 C 后面的方括号,表示和引用单元格在同行或同列样式的绝对引用在 A1 样式中使用绝对引用要在行号或列号字母 前使用 $ 。但在 R1C1 样式中只 需省略方括号 就行了,是不是很简单 !如下所示代码 :Subhuizong()Dim Finalrow AsIntegerFinalrow = Cells, 2).End(xlUp).RowCells(Finalrow + 1, 1).Value = 汇总 Cells(Finalrow + 2, 1).Resize(1, 3).FormulaR1C1 =SUM(R2C:R-2C)EndSub引用R
6、2C:R-2C 表示将当前列第2行到上2行中,同列数据的和,通过使用 R1C1混合引用,可以使用公式求行数不确定的数据,引用整行和整列有时候需要编写整列的公式。例如求G列的最大值,如不知道G列包含多少行, 可在单元格中输入公式=MAX ( $G:$G),要找出第一行中最大的值可用?=MAX($1:$1)或 R1C1 公式=MAX(R1)。可以整行、整列使用相对引用。要计算当前单元格上一行的平均值,可用=AVERAGE(R-1)如何在 D5 引用其周围的单元格五、R1C1样式的经典实例,一种有趣的行为创建 R1C1 公式实际上比 A1 公式更直观。 一个演示 R1C1 公式的经典实例是创建乘法表
7、。在 excel 中,使用单个混合引用公式就可创建乘法表。创建乘法表在B1: M1中输入数字1-12,在A2:a13中也输入数字1-12,现在创建b2: m13中所有单元格公式,它计算第一行和第一列的乘积。用R1C1样式公式代码 如下:SubMultiplicationtable8()Range(b1:m1).Value = Array(1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11, 12)Range(b1:m1). = TrueRange(b1:m1).CopyRange(a2:a13).PasteSpecial Transpose:=TrueRange(b2:m13).
8、FormulaR1C1 = =rc1*r1c最合适的列宽EndSub一种有趣的行为尝试以下操作,将单元格指针移到F6,单击 开发工具”-”录制宏,然后单击 开 发工具”-使用相对引用”输入公式=a1并按ctrl+enter键,以保留在F6键中。 单击 “停止录制 ”按钮。将得到一个只包含一行的代码的宏,它在当前的单元格输入公式,该公式引用向上 5 行,向左 5 列的单元格:Sub 宏 1()= =R-5C-5EndSub现在将单元格指针移到 A1 并运行刚才的宏,你可能会认为将导致运行错误 1004,但实际并没有出现这种错误。运行宏时,单元格A1 中的公式指向=XF1048572 (Excel
9、2003指向=IR65532),这意味着R1C1公式从表的左侧绕回 到右侧。这是一个很有趣的行为,但是可能宏将提供一个与用户期望不同的结 果!乘法表实例:六、条件格式中的 R1C1 样式应用 设置条件格式时,必须使用 R1C1 公式,这很重要。文档没有明确之处这一点, 但如果不用R1C1公式,有时可能出问题,有研究发现,如果用A1公式,每对50 个单元格设置条件格式,将有一个单元格出现奇怪的行为。因为将 A1 引用转换 为R1C1引用有时存在二义性,例如,R2表示一个单元格,但可能被错误理解 为整个第二行。FormatC on ditio ns对象用于设置条件格式。每个单元格可以有3个Form
10、atC on ditio ns,下面的代码首先遍历所有工作表,删除每个工作表中的条件 格式,然后遍历每个工作表中所有的非空单元格,并应用两种条件格式。在第一种条件格式中,类型为xIExpressio n,这意味着使用的是 公式”语法。首 先 Foumula1 指定的公式采用的是 R1C1 表示法。第二个条件格式使用 xICeIIVaIue 类型,这需要指定一个运算符和一个值。在添 加条件后,为条件 1 和条件 2 设置字体的 CoIorIndexSubAppIySpeciaIFormattingALL()For EachwsIn?For EachceII In?IfNotIsEmpty(ceI
11、I) Then单元格值是任意错误值时,把字体颜色设置为与单元格底色相同的颜色 (即看不出错误值 )Type:=xlExpression,Formula1:=or(ISERR(RC),isna(RC)(1). =单元格值小于 0 的,全部用红色字体标出Type:=xlCellValue, Operator:=xlLess, Formula1:=0(2). = 3EndIfNextcellNextwsEndSub一个演示条件格式的经典实例,显示包含最小值和最大值的行。代码如下:SubFindMinMax()Finalrow = Cells(, 1).End(xlUp).RowWith Range(
12、a2:c & Finalrow)用绿色底纹标出. Type:=xlExpression, Formula1:=rc3=max(c3).FormatConditions(1). = 4. Type:=xlExpression, Formula1:=rc3=min(c3).FormatConditions(2). = 6用黄色底纹标出EndWithEndSub如果设置一个指向单元格 C3的条件格式,这种格式将失败,因为 Excel将C3解释为第 3 列。七、VBA中的R1C1样式数组公式数组公式必须是 R1C1 公式。数组公式是功能强大的 “超级公式 ”,被称为 CSE 公式,因为用户必须按Ctr
13、l+Shift+Enter 键来输入它们,如:=SUM(A$2:A7*B$2:B7) 这是个数组公式,很好理解。虽然在用户界面中显示 A1 样式,但输入数组公式要使用 R1C1 表示法:SubEnterArrayFormulas()Finalrow = Cells, 1).End(xlUp).RowCells(Finalrow + 2, 2).Value = 乘积和Cells(Finalrow + 2, 3).FormulaArray =sum(R2C-2:R-2C-2*R2C-1:R-2C-1)EndSub?上述代码中的:Cells(Finalrow + 2, 3).FormulaArray
14、 = =sum(R2C-2:R-2C-2*R2C-1:R-2C-1)可以简化为:Cells(Finalrow + 2, 3).FormulaArray = =sum(R2:R-2 C-2*R2:R-2 C-1) 后面有介绍,但要注意: 红色和蓝色 代码之间有一个空格。【小技巧】可以采用下面的方法快速输入 R1C1公式:在任何单元格中输入常规的 A1 公式或数组公式,选择该单元格并切换到 VBA编辑器。然后按 Ctrl+G 键打开立即窗口,再输入:或者Print ?并按回车键, Excel 将把公式栏中的公式转换为 R1C1 样式。以下内容来自第二个帖子,。单元格引用有 A1 和 R1C1 两种
15、形式,两种形式中又包含了绝对引用和相对引用 两种不同的变化。单个区域的引用:先来讲一下 R1C1 方式的引用对于G2:J2这样一个单元格区域,使用R1C1来引用,可以写作:R2C7:R2C10, 也可以写作:R2C10:R2C7。但R必须在C前面,“ C10R2:C7R这样的写法是 无效的。对于这样单行的区域引用,可以使用简写的引用方式,即将R2C7:R2C10中的红色部分省去,简写为 R2C7:C10。如果对于单列的区域引用,例如G2:G10,则可以将R2C7:R10C7中的红色部分 省去,简写为 R2:R10C7。为什么可以这样简写,这样的简写有何规律在没有官方的解释之前,为了便于 大家的
16、理解和记忆,我给出一个我自己的解释思路,请看下面的 “关于引用运算 符”:关于引用运算符:Excel中包含了 3种引用运算符,用于表示对单元格的引用,一种是冒号,称为区域运算符,这是最常见的,如=sum(A2:B10),表示引用冒号两边单元格所围成的矩形区域;一种是逗号,称为联合运算符,如 =RANK(A1,(A1:A10,C1:C10) ,表示同时引用逗号两边的两个区域;还有一种是空格,称为 交叉运算符 ,表示引用空格两边的两个区域的交集,如=SUM(A1:B5 A4:D9) 即等价于 =SUM(A4:B5) 。这个交叉运算符也是我这里要重点 引入的一个使用技巧。对于G2:J2这个单元格区域
17、,如果换一个角度来看,可以看作是 G:J这4列与 第2行所构成的交叉区域。因此,如果用交叉运算符和 R1C1样式来引用的话, 可以写作:R2 C7:C10,即表示R2与C7:C10这两个区域的交叉区域。因此R2C7:R2C10等价于(R2 C7:C10),而这个形式与上面的简写形式 R2C7:C10 十分相似;同理,G2:G10可以表示为R2C7:R10C7,等价于(R2:R10 C7),这个形式于其简 写形式R2:R10C7也十分相似。以上就是对于同行或同列的 R1C1 引用简写方式的一些理解,但这个题目中真 正起到大作用的并非那个简写方式 (虽然也可以缩短不少字符) ,而是引入交叉 运算符
18、以后的引用方式。请继续往下看。交叉运算符同样也可以应用在 A1 引用方式中:例如(R2 C7:C10)如果使用A1引用方式,则可以写作:(2:2 G:J)(R2:R10 C7)如果使用A1引用方式,则可以写作:(G:G 2:10)从现在的样子看上去,好像 A1 引用方式更简短,但联系题目的实际情况,经 过代入后的比较最终可以发现还是 R1C1 引用方式更合适, 关于这一点可以留到 后面再看。多个区域的引用:题目最终结果要求同时超级链接到 3 行最多喜字的区域,这就意味着需要同时 对多个区域进行引用,以同时引用G13:J13 G15:J15 G17:J17这三行区域为例,使用 R1C1 的通常写法是:R13C7:R13C10,R15C7:R15C10,R17C7:R17C10 其中的逗号表示联合运算可以引入交叉运算符,简化为:R13 C7:C10,R15 C7:C10,R17 C7:C10此时,来做一个类似于合并同类项的变形,可以简化为:(R13,R15,R17) C7:C10将几个行号用逗号相连接表示联合运算,同时外面用括号包围以后,再与C7:C10区域使用空格进行连接,形成交叉运算关系,得到了我们所需要的三个行区域的同时引用这个引用方式就是我
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度网红店铺品牌授权合同
- 家具专门零售企业ESG实践与创新战略研究报告
- 二零二五年度手房银行按揭购房合同违约赔偿条款
- 馒头用小麦粉企业ESG实践与创新战略研究报告
- 二零二五年度农产品电商平台加盟合同
- 二零二五年度个人担保个人医疗贷款合同
- 2025年度智能硬件领域股权转让合同解除协议
- 二零二五年度智能交通系统专利权授权合同
- 重交沥青项目风险识别与评估综合报告
- 香料原料项目风险识别与评估综合报告
- 课程思政建设论文:新版义务教育英语课标的中国底色
- 马工程-公共财政概论-课程教案
- GB/T 16956-1997船用集装箱绑扎件
- 使役、被动 梳理讲义-高三日语一轮复习
- 千年菩提路解说词
- 古代汉语课件-副词
- 采矿学-I课件第七章-主要开拓巷道类型和位置的选择
- BCH编码解读课件
- 摄像机基本原理(中文)
- 人员招收、招聘来源及人员稳定性保障措施
- 小学科学教育科学三年级下册植物的生长变化开花了PPT
评论
0/150
提交评论