SUMfunction与另一张纸的数据

我想在VBA中使用引用另一个工作表的SUM函数。 该function需要有dynamicinput,因此我正在使用“单元格”。

下面的代码简单地添加两个单元格效果很好:

Worksheets("Derived Data").Cells(2, 1).Formula = "=sheet1!" & (Cells(2, 2).Address & "+" & "sheet1!" & Cells(6, 2).Address) 

当我尝试使用诸如SUM或AVERAGE或任何其他函数的函数时,VBA将该函数解释为子macros而不是EXCEL函数

 Worksheets("Derived Data").Cells(i, 1).Formula = "=sheet1!" & Sum(Cells(2, 2).Address & ":" & "sheet1!" & Cells(6, 2).Address) 

我的参考是错误的?

注意:单元格和列已经被固定用于debugging。

这是近距离试试这个:

 Worksheets("Derived Data").Cells(i, 1).Formula = "=sum(sheet1!" & Range(Cells(2, 2), Cells(6, 2)).Address & ")" 

由于公式是要求一个范围,使用VBA你需要使用范围。

为了更容易编辑我的偏好是分割它,但上面的单行工作。

 Dim rng as Range with sheets("Sheets1") set rng = .Range(.Cells(2, 2), .Cells(6, 2)) end with Worksheets("Derived Data").Cells(i, 1).Formula = "=sum(" & rng.Parent.Name & "!" & rng.Address & ")" 

你几乎在那里,你只是没有正确的语法,让VBA设置公式。 尝试这个:

 Worksheets("Derived Data").Cells(i, 1).Formula = "=Sum(sheet1!" & Cells(2, 2).Address & ":sheet1!" & Cells(6, 2).Address & ")"