FormulaR1C1的功能是什么?

时间:2012-10-31 19:10:54

标签: excel vba excel-vba

我一直在看 FormulaR1C1 作为一个函数,这究竟是如何工作的?我理解整个互联网上所说的第1排第1列,但人们如何才能真正发挥作用?使用 FormulaR1C1 最终结果是什么?

也可以将其更改为从工作表中的特定点开始,还是始终为R1C1?它可能是 FormulaR2C3 吗?

3 个答案:

答案 0 :(得分:39)

FormulaR1C1与Formula具有相同的行为,仅使用R1C1样式注释,而不是A1注释。在A1注释中,您将使用:

Worksheets("Sheet1").Range("A5").Formula = "=A4+A10"

在R1C1中,您将使用:

Worksheets("Sheet1").Range("A5").FormulaR1C1 = "=R4C1+R10C1"

它不作用于第1行第1列,它作用于目标细胞或范围。第1列与A列相同,因此R4C1与A4相同,R5C2为B5,依此类推。

该命令不会更改名称,目标单元格会更改。对于R2C3(也称为C2)示例:

Worksheets("Sheet1").Range("C2").FormulaR1C1 = "=your formula here"

答案 1 :(得分:21)

以下是my blog关于我如何在vba之外使用formular1c1的一些信息:

你刚刚编写了一个公式,将其复制到整个电子表格中,格式化了所有内容,你意识到你忘记了绝对的参考:每个公式都需要引用Cell B2但是现在,它们都引用了不同的单元格。 / p>

考虑到有B5,其他C12,第三个D25等等,您将如何对单元格进行查找/替换?

简单的方法是将参考样式更新为R1C1。 R1C1参考使用相对定位:R标记行,C标记列,R和C后面的数字是相对位置(在[]之间)或绝对位置(不是[])。

示例:

  • R [2] C指细胞下面两行的细胞
  • 中的公式
  • RC [-1]指的是左边一列的单元格
  • R1C1是指第一行和第一个单元格($ A $ 1)
  • 中的单元格

有什么关系?好吧,当你在这篇文章的开头写回你的第一个公式时,B2就是你编写它的单元格上方的4行单元格,即R [-4] C。当您向上和向下复制时,A1参考更改时,R1C1参考不会。在整个电子表格中,它是R [-4] C。如果你切换到R1C1参考样式,你可以用一个简单的查找/替换替换R [-4] C R2C2($ B $ 2)并一举完成。

答案 2 :(得分:2)

我发现.FormulaR1C1最有价值的特征是纯粹的速度。 例如,一些非常大的循环将一些数据填充到工作表中, 如果你可以将你正在做的事情转换为.FormulaR1C1表格。 然后单个操作,例如myrange.FormulaR1C1 =“我特定的formuala” 快得多(可快一千倍)。 没有循环和计数 - 只需高速填充范围。