R1C1 公式结果给出给定变量的两倍



我想规范化一些数据,并希望这些规范化的数据在数据更改时动态变化,这就是为什么我想将公式放在引用不同单元格的单元格中。但这与问题并不真正相关,因为即使是最简单的公式(如下所示(也不起作用。

Public Sub Test()
    a = 15
    Cells(a, 8).FormulaR1C1Local = "=Z(" & a & ")S7"
End Sub

单元格(15,8(中的公式为=$G30
我期望以下输出:=$G15.

在许多论坛中,人们问如何在R1C1Formula中放置变量,答案是:[" & a & "],但这给出了运行时错误 1004,所以我尝试了(),它没有给我任何警告,但结果不是我预期的。

您需要了解相对和绝对引用方面的R1C1规则。

R15C7是绝对的:第 15 行和第 7 列 = $G$15

R[15]C7 是相对行,表示:公式所在的行加上 15 行和第 7 列。如果公式在第 15 行,则 = $G30

RC7表示:公式所在的行和第 7 列。如果公式在第 15 行,则 = $G15

Public Sub Test()
 a = 15
 Cells(a, 8).FormulaR1C1 = "=R[" & a & "]C7" '$G30
 Cells(a, 8).FormulaR1C1 = "=R" & a & "C7"   '$G$15
 Cells(a, 8).FormulaR1C1 = "=RC7"            '$G15
End Sub

翻译成您的区域设置Zeile/Spalte Z1S1

Public Sub Test()
 a = 15
 Cells(a, 8).FormulaR1C1Local = "=Z(" & a & ")S7" '$G30
 Cells(a, 8).FormulaR1C1Local = "=Z" & a & "S7"   '$G$15
 Cells(a, 8).FormulaR1C1Local = "=ZS7"            '$G15
End Sub

最新更新