绝对引用 - 在以R1C1表示法编写的等式中插入等效的'$'

时间:2014-02-14 02:37:49

标签: excel excel-vba vba

我有这个等式,我正在使用VBA进入我的电子表格中的单元格:

ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-3],RC[-1]:R[" & CellNumber & "]C[-1],1,0)"

如何输入带有$符号的公式以保持单元格引用被锁定?

我尝试在公式中各自的位置添加$,但这不起作用。

1 个答案:

答案 0 :(得分:5)

如果还有一天,你可能会注意到差异是绝对引用(i)不使用方括号,(ii)总是在RC的右边有一个数字,例如R1C1,这意味着第1行,第1列 - 通常表示A1(虽然有时R1C1在电子表格本身,以及宏中 - 当在所谓的R1C1参考样式时)。

RC[-3]是一个相对引用,意味着任何行恰好是当前行(R右边没有值,所以没有偏离当前行)和左边三列(因为是负面的)任何恰好是当前列。

因此,如果在D1中,RC[-3]引用与R1C1完全相同的位置 - 即通常称为A1的内容。

但是,因为相对引用,将RC[-3]放在E1中,它将引用B1,而R1C1(和$ A $ 1一样)引用A1无论它放在哪里。

现在,您的示例提到Active Cell - 这是您将放置公式的位置,并且是“在同一行但左侧三列”的起点。但是你还没有展示如何选择活动单元格,因此我们无法确定从哪个单元格开始,因此无法确定要结束的位置(而不是方向/距离)。

例如,如果在棋盘上,相对引用可能是“将你的骑士向上移动两行,向右移动一列”,而绝对将“将你的骑士放在方形王4”中。

从某种意义上说,两个“系统”都是相对的 - 只是“绝对”系统总是相对于左上角(除了使用RTL布局时)。

[ ]的方括号视为“来自我所在的单元格”可能会有所帮助。

行的“负列表示左侧”相当于“向上”。