2017-07-03 134 views
0

我想我已經嘗試了大多數所有內容,並且總是遇到可怕的運行時錯誤'1004':應用程序定義的錯誤或對象定義的錯誤。VBA:我可以將公式添加到一系列單元格中,但不能添加到1個單元格

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

就馬上蝙蝠,我注意到你缺少一個:(冒號)

.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])" 
+0

結束了使用一個.Cells(STARTROW,16)的參考,而不是.Range,但我認爲這是右括弧造成了這個問題!謝謝。 –

+0

很高興你找到了解決方案。無論是或工作!由於各種原因,請堅持兩個:) – Busse

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]" 
相關問題