尝试使用FormulaR1C1引用多个单元格

时间:2017-01-30 17:40:53

标签: vba excel-formula excel-r1c1-notation

我正在尝试在VBA中使用FormulaR1C1属性但仍然遇到运行时错误1004.我的代码如下。

ActiveCell.FormulaR1C1 = "=R[0]C[-1] * (1 + =R" & cellcount & "C1)"

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

根据现有的有限信息,1004错误的最可能原因是使用ActiveCell。我建议你尝试完全限定单元格,看看是否能解决错误。

例如:

Worksheets("Sheet1").cells(1,1).FormulaR1C1 = "=R[0]C[-1] * (1 + R" & cellcount & "C1)"

再次从可用的有限信息中猜测,看起来您将把它应用于几个单元格。这最好通过遍历单元格的循环来完成。这可以使用范围上的for each语句(可能由用户选择?)或通过for语句根据需要确定值来完成。我强烈建议您在设置循环之前首先尝试完全限定单个单元格作为测试。

另一种通常有用的测试方法是在将公式附加到单元格之前将公式存储在字符串变量中。这个分解将为您提供另一个调试步骤。

示例:

Dim formulaTest as string
formulaTest = "=R[0]C[-1] * (1 + R" & cellcount & "C1)"

Worksheets("Sheet1").cells(1,1).FormulaR1C1 = formulaTest

每行都有一个断点,可以让你非常清楚错误弹出的位置。