如何在 vba 中使用 formular1c1(附示例)


您可以使用 VBA 中的FormulaR1C1属性来创建对工作表上特定单元格的绝对引用或相对引用。

使用此属性有两种常见方法:

方法一:使用R1C1公式创建绝对参考

 Sub MultipyCell()

Range(" C5 ").FormulaR1C1 = " =R1C1*20 "

End Sub

当您运行此特定宏时,单元格C5将显示第 1 行第 1 列中的单元格乘以 20 的结果。

方法二:利用R1C1公式做相对参考

 Sub MultipyCell()

Range(" C5 ").FormulaR1C1 = " =R[-4]C[-2]*20 "

End Sub

当您运行此特定宏时,单元格C5将显示上方 4 行左侧 2 列的单元格乘以 20 的结果。

以下示例展示了如何在单元格A1中包含值10的 Excel 工作表中实际使用每种方法:

示例 1:使用 R1C1 公式创建绝对引用

我们可以创建以下宏,将第 1 行第 1 列中的单元格值乘以 20 并将结果显示在单元格C5中:

 Sub MultipyCell()

Range(" C5 ").FormulaR1C1 = " =R1C1*20 "

End Sub

当我们运行这个宏时,我们会收到以下输出:

我们可以看到 Excel 使用公式=$A$1*20来计算单元格C5中的结果。

由于我们在 VBA 公式中使用了R1C1 ,因此我们对第一行第一列中的单元格(即单元格A1 )进行了绝对引用。

例2:利用R1C1公式进行相对参考

我们可以创建以下宏,将单元格C5上方 4 行左侧 2 列的单元格的值乘以 20,并将结果显示在单元格C5中:

 Sub MultipyCell()

Range(" C5 ").FormulaR1C1 = " =R[-4]C[-2]*20 "

End Sub

当我们运行这个宏时,我们会收到以下输出:

我们可以看到Excel使用公式=A1*20来计算单元格C5中的结果。

由于我们在 VBA 公式中使用了带有R[-4]C[-2]的括号,因此我们对位于单元格C5上方 4 行、左侧 2 列的单元格(即单元格A1)进行了相对引用。

注意:您可以在此处找到 VBA FormulaR1C1属性的完整文档。

其他资源

以下教程说明如何在 VBA 中执行其他常见任务:

VBA:“如果单元格包含”的简单公式
VBA:如何计算字符串中字符的出现次数
VBA:如何检查一个字符串是否包含另一个字符串

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注