2012-07-05 203 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 & ")"