admin 管理员组

文章数量: 887021


2023年12月17日发(作者:java中什么是实例方法)

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”表示的是待变“行”和“列”。

如:选定单元格为C8

R[-1]C[-1]为B7单元格,行列都-1,R[1]C[2]为E9单元格,行+1,列+2

R1C1代表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密切相关的知识,在本站亦有文章曾作过详细介绍,您可以拜读上一篇文章


本文标签: 公式 格式 返回 设置 介绍