ExcelVBA中的FormulaR1C1方法ExcelVBA中的FormulaR1C1方法.doc
文本预览下载声明
Excel VBA 中的 FormulaR1C1 方法Excel VBA 中的 FormulaR1C1 方法
By Robin On 2010年09月27日 · Leave a Comment · In Programming, 信息世界 | IT
最近在做项目的时候遇到了在 Excel VBA 代码中给 Sheet 中的单元格内输入公式的问题,自己 Google 了一下,发现 FormulaR1C1 这个函数,这个函数还是很强大的,自己简单了研究一下,为什么 Excel 能实现拖拽单元格时单元格中的公式能智能的根据位置而变换?答案就是这个函数。
FormulaR1C1 是公式输入方法
中括号表示的是相对于选定单元格的相对偏移量,”-”为向左或向上偏移,正数为右或下偏移。
无中括号表示的是相对于选定单元格的绝对偏移量,没有负数。
“R”和”C”表示的是待变“行”和“列”。
如:选定单元格为C8R[-1]C[-1]为B7单元格,行列都-1,R[1]C[2]为E9单元格,行+1,列+2R1C1代表A1单元格,R5C6代表F5单元格例:C1单元格为”=A1+B1″Range(“C1″).FormulaR1C1 = “=RC[-2]+RC[-1]”例:C1单元格为”=A2+E3″Range(“C1″).FormulaR1C1 = “=R[1]C[-2]+R[2]C[2]“
关于绝对引用的补充:
例:C1单元格为”=$A$2+$E$3″Range(“C1″).FormulaR1C1 = “=R2C1+R3C5″
说明:
如果指定单元格包含常量,本属性返回的就是该常量。如果该单元格为空,本属性将返回一个空字符串。如果该单元格包含公式,本属性将把该公式作为字符串返回,格式与该公式在编辑栏中的显示格式相同(包括等号)。
如果将单元格的格式的值或公式设为日期类型,Microsoft Excel 将检查该单元格的格式是否符合某个日期或时间数组格式,如果不符合,将采用默认的短日期数字格式。
如果指定区域是一维或二维区域,则可将公式指定为 Visual Basic 中相同维数的数组。同样,也可在 Visual Basic 数组中使用公式。
对多重单元格区域设置公式,则该区域中所有单元格都用此公式填充
在Excel的VBA应用中,常常会遇到FormulaR1C1属性的使用。那么,FormulaR1C1是用来干什么,又如何使用呢?
下面,就给你介绍有关这方面的知识。
FormulaR1C1属性的功能
返回或设置指定对象的公式,使用宏语言 R1C1 格式符号表示。Variant 型,可读写。
FormulaR1C1的语法
表达式.FormulaR1C1
表达式 一个代表 Range 对象的变量。
语法说明
如果单元格包含一个常量,此属性返回该常量。如果单元格为空,此属性返回一个空字符串。如果单元格包含公式,此属性将该公式作为字符串返回,所用格式与在编辑栏(包括等号)中显示时的格式相同。
如果将单元格的格式的值或公式设为日期类型,Microsoft Excel 将检查该单元格的格式是否符合某个日期或时间数组格式,如果不符合,将采用默认的短日期数字格式。
如果指定区域是一维或二维区域,则可将公式指定为 Visual Basic 中相同维数的数组。同样,也可在 Visual Basic 数组中使用公式。
对多重单元格区域设置公式,则该区域中所有单元格都用此公式填充。
FormulaR1C1的简单例子
例子一:
Worksheets(Sheet1).Range(B1).FormulaR1C1 = =SQRT(R1C1)
作用是:给Sheet1工作表的B1单元格设置公式,所设置的公式为:=SQRT(C2)
例子二:
Worksheets(1).Cells(3, 4).FormulaR1C1 = =Average(RC[-3]:RC[-2])
作用是,给编号为1的工作表中的D3单元格设置公式,所设置的公式为: =Average(A3:B3)
相关的例子及介绍都有很多,在这里不胜枚举,其中,涉及到CR的引用,与此相关的并与FormulaR1C1密切相关的知识,在本站亦有文章曾作过详细介绍,您可以拜读上一篇文章
显示全部