ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: hzhb14796

[分享] R1C1样式---全知道

  [复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-9-7 09:39 | 显示全部楼层
本帖已被收录到知识树中,索引项:公式基础
本帖最后由 hzhb14796 于 2011-9-25 11:36 编辑

6,条件格式中的R1C1样式
      设置条件格式时,{:soso__18395444775934495218_4:}必须实用R1C1公式,这很重要。文档没有明确之处这一点,但如果不用R1C1公式,有时可能出问题{:soso__948410570543185247_2:},有研究发现,如果用A1公式,每对50个单元格设置条件格式,将有一个单元格出现奇怪的行为。因为将A1引用转换为R1C1引用有时存在二义性,例如,R2表示一个单元格,单可能被错误理解为整个第二行。
      FormatConditions对象用于设置条件格式。每个单元格可以有3个FormatConditions,下面的代码首先删除工作表的中的条件格式,让后遍历工作表中所有的非空单元格,并应用两种条件格式。在第一种条件格式中,类型为xlExpression,这意味使用是“公式”语法。首先Foumula1指定的公式采用是R1C1表示法。第二个条件格式使用xlCellValue类型,这需要指定一个运算符和一个值。在添加条件后,为条件1和条件2设置字体的ColorIndex
        Sub  ApplySpecialFormattingALL()
               For  Each  ws In  ThisWorkbook.Worksheets
                      ws .Usedrange.FormatConditions.Delete
                      For Each  cell  In  ws.Usedrange.Cells
                              If  Not  IsEmpty(cell)   Then
                                     cell.FormatConditions.Add  Type:=xlExpression,Formula1:="=or(ISERR(RC),isna(RC))"
                                     cell.FormatConditions(1).Font.Color = cell.Interior.Color
                                      cell.FormatConditions.Add  Type:=xlCellValue,Operator:=xlLess,Formula1:="0"
                                      cell.FormatConditions(2).Font.ColorIndex = 3
                               End If
                          Next cell
                     next  ws
            End sub
一个演示条件格式的经典实例,显示包含最小值和最大值的行。代码如下:
    Sub FindMinMax()
    finalrow = Cells(Application.Rows.Count, 1).End(xlUp).Row
    With Range("a2:i" & finalrow)
        .FormatConditions.Delete
        .FormatConditions.Add Type:=xlExpression, Formula1:="=rc7=max(c7)"
        .FormatConditions(1).Interior.ColorIndex = 4
        .FormatConditions.Add Type:=xlExpression, Formula1:="=rc7=min(c7)"
        .FormatConditions(2).Interior.ColorIndex = 6
    End With
   
End Sub
如果设置一个指向单元格C7或R22的条件格式,这两种格式都将失败,因为Excel将C7解释为第7列。

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-9-25 14:23 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
7,数组公式必须是R1C1公式
       数组公式是功能强大的“超级公式”,被称为CSE公式,因为用户必须按Ctrl+Shift+Enter键来输入它们,如
            =sum(if(a$2:a$19=$a22,d$2:d$19*e$2:e$19,0))这是个数组公式,很好理解
虽然在用户界面中显示A1样式,但输入数组公式要使用R1C1表示法:
          sub  enterarrayrormulas()
               finalrow = cells(rows.count,1).end(xlup).row
               cells(finalrow + 1 ,5).formulaarray = "=sum(R2C[-1]:R[-1]C[-1]*R2C:R[-1]C)"
        end sub

    可以采用下面的方法快速输入R1C1公式:在任何单元格中输入常规的A1公式或数组公式,选择该单元格并切换到VBA编辑器。然后按Ctrl+G键打开立即窗口,在输入Print Activecell.FormulaR1C1,并按回车键。Excel将把公式栏中的公式转换为R1C1样式。

TA的精华主题

TA的得分主题

发表于 2012-1-7 19:56 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
所以如果我想在excel函数中用r1c1一定要先在excel选项中修改吗????????

TA的精华主题

TA的得分主题

发表于 2012-3-19 00:41 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2012-4-1 13:44 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
灭绝INDIRECT函数帖

TA的精华主题

TA的得分主题

发表于 2012-4-11 17:09 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2012-4-11 17:43 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
有较大的学习参考价值,收藏学习!

TA的精华主题

TA的得分主题

发表于 2012-5-13 18:40 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
正在学习INDIRECT这个函数,对RC式样现在有了了解.谢谢分享,收藏了!

TA的精华主题

TA的得分主题

发表于 2012-8-8 09:46 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2012-8-8 10:46 | 显示全部楼层
其实很简单的道理:

R1C1是机器语言,但不易被人类记忆、联想。

而A1形式,对人类来说是非常自然的、亲切的形式。


比如,整个列公式都是=rc[-1]*r[2]c[3] 时,
你根本无法马上知道本单元格的值,具体是由哪两个单元格的结果计算而来的。

但如果是写成=a3*e6 ,那么你不就马上明白了么?


您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-4 16:37 , Processed in 0.045611 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表