VBA:我可以为一系列单元格添加公式,但不能向1个单元格添加公式

时间:2017-07-03 16:42:03

标签: excel vba excel-vba

我想我已经尝试了大部分内容而且我总是遇到可怕的运行时错误'1004':应用程序定义或对象定义的错误。

Dim wsMaster As Workbook
Set wsMaster = ActiveWorkbook
(Other stuff)
With wsMaster.Worksheets(1)
    .Activate
    .Range(Cells(startRow, 20), Cells(endRow, 25)).FormulaR1C1 = "=RC[-12]*RC15/R" & startRow & "C16"
    .Range(Cells(startRow, 26), Cells(startRow, 31)).FormulaR1C1 = "=SUM(RC[-6]:R" & endRow & "C[-6])"
    .Range("R" & startRow & "C16").FormulaR1C1 = "=SUM(R" & startRow & "C[-1]:R" & endRow & "C[-1]"
End With

有趣的是,代码只会在第三个公式赋值行上抛出错误。其他行按预期运行,并在指定范围内插入适当的公式。我已经尝试了无数种不同的方法来引用单元格,但每次都会出现错误。

我检查了本地屏幕,startRow正确设置为2,endRow正确设置为8。

我很感激这个神秘问题的任何帮助!

2 个答案:

答案 0 :(得分:2)

刚刚蝙蝠我注意到你错过了:(冒号)

.Range("R" & startRow & "C16") should be

.Range("R" & startRow & ":C16")

我注意到的其他问题是第三个公式。您缺少括号和括号:

"=SUM(R" & startRow & "C[-1]:R" & endRow & "C[-1]" should be:

"=SUM(R[" & startRow & "]C[-1]:R[" & endRow & "]C[-1])"

以下是整个第三行,格式相同,并带有上述参考更正。

.Range("R" & startRow & ":C16").FormulaR1C1 = "=SUM(R[" & startRow & "]C[-1]:R[" & endRow & "]C[-1])"

答案 1 :(得分:0)

要引用单个单元格,您可以使用Cells(row, column)属性。

在您的代码中,更改

.Range("R" & startRow & "C16").FormulaR1C1 = "=SUM(R" & startRow & "C[-1]:R" & endRow & "C[-1]"

.Cells(startRow, 16).FormulaR1C1 = "=SUM(R" & startRow & "C[-1]:R" & endRow & "C[-1]"