我想我已经尝试了大部分内容而且我总是遇到可怕的运行时错误'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。
我很感激这个神秘问题的任何帮助!
答案 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]"