2012-07-05 202 views
1

我想要計算vba中變化的單元格範圍的總和。不幸的是單元格的值是變量。我似乎無法得到以下公式的工作。SUM公式VBA

Private Sub calcOverheadRate(startCell As Integer, endCell As Integer) 
    Total = endCell + 1 
    Range("D" & Total).Formula = "=SUM("D" & startCell & ":" & "D" & endCell)" 
End Sub 

我得到編譯錯誤:「預期:聲明

結束

爲了解決這個問題,我改變了功能,

Private Sub calcOverheadRate(startCell As Integer, endCell As Integer) 

    Dim start As String 
    Dim endC As String 

    start = "D" & CStr(startCell) 
    endC = "D" & CStr(endCell) 

    Total = endCell + 1 

    Range("D" & Total).Formula = "=SUM(start:endC)" 

End Sub 

功能編譯好,當我運行它時,在單元格中的值是「#NAME」,其中引用SUM(start:endC)而不是SUM(D5:D23) ....

有關如何解決此問題的任何想法,將不勝感激

回答

1

我想通了這個問題的&需要在報價字符串常量內

Range("D" & Total).Formula = "=SUM(" & start & ":" & endC & ")" 
5

的引號問題:
Range("D" & Total).Formula = "=SUM(" & startCell & ":" & endCell & ")"