如何在VBA for Excel中使用r1c1格式进行绝对引用?

我正在使用VBA(r1c1格式)为Excel写一个macros,我想引用一个始终在E3位置的单元格。 有没有我可以使用的语法,将在r1c1格式绝对参考? 或者是有办法切换到A1和回到r1c1?

我到处找,我找不到答案…提前感谢。

如果我坚持=E3G5=$E$3G6 ,然后启动一个VB窗口,并在即时窗口中执行此操作:

 ? ActiveSheet.Range("G5").Formula =E3 ? ActiveSheet.Range("G5").FormulaR1C1 =R[-2]C[-2] ? ActiveSheet.Range("G6").Formula =$E$3 ? ActiveSheet.Range("G6").FormulaR1C1 =R3C5 

所以R和C使它相对于当前单元格。 当数字为负数时,您需要使用方括号,否则Excel会认为您正在从一个无效的单元格引用中减去一个数字。

编辑 :值得一提的是,当绝对与相对的参考处理不同。

  • 对于相关的参考文献,您可以从公式所在的单元格中计算出来E3是远离G5 R[-2]C[-2] 。 即向上2行,向左2列。

  • 对于绝对值,你从左上angular计算。 所以E3R3C5 。 即3行,5列以上。 (感谢@GeorgeDooling的澄清)

有时'Application.ConvertFormula'函数在参考样式之间有用。 例如,将其添加到直接窗口中:

debug.print application.ConvertFormula(“= PRODUCT(O7,P $ 7)”,xla1,xlr1c1)

返回这个:

= PRODUCT(RC [-5],R7C [-4])

这是一个微不足道的例子,但是当你手上有怪物公式时

另外,在VBA中的引用样式之间的切换是通过

application.ReferenceStyle = xlA1

要么

application.ReferenceStyle = xlR1C1

R3C5

没有括号=相对

编辑公式时,在单元格窗口中按f4将切换相对或绝对