首页 > 解决方案 > Excel宏R1C1公式不保留值

问题描述

我有一个 excel 宏,它创建一个新的 excel 表并用可变数量的行填充它。我计算了存储在变量中的行数。我正在使用 R1C1 公式根据我的行数将两个单元格相乘。在宏中,公式看起来是正确的(如果我添加断点并对其进行监视),但是当宏完成时,单元格中的公式不正确。

VB代码生成公式:

MainSheet.Cells(RowCount + 6, 6).FormulaR1C1 = "=R[" & RowCount + 3 & "]C" & "*" & "R[" & RowCount + 4 & "]C"

观察带有断点的公式会发现:“=R[430]C*R[431]C” 宏完成后的实际单元格数据:=F863*F864。我需要这是 =F430*F431

标签: excelvbaexcel-r1c1-notation

解决方案


通过使用[]你告诉vba你想要相对定位。这意味着它将添加(或减去)中的数字[]到放置公式的当前行和/或列中。

删除行数:

MainSheet.Cells(RowCount + 6, 6).FormulaR1C1 = "=R[3]C*R[4]C"

推荐阅读