如何在VBA for Excel中使用r1c1格式进行绝对引用?
我正在使用VBA(r1c1格式)为Excel写一个macros,我想引用一个始终在E3位置的单元格。 有没有我可以使用的语法,将在r1c1格式绝对参考? 或者是有办法切换到A1和回到r1c1?
我到处找,我找不到答案…提前感谢。
如果我坚持=E3
到G5
和=$E$3
到G6
,然后启动一个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计算。 所以
E3
是R3C5
。 即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将切换相对或绝对