我正在尝试在VBA中使用SUM函数来引用另一个工作表。该函数需要动态输入,因此我使用“Cells”。
只需添加两个单元格即可使用以下代码:
Worksheets("Derived Data").Cells(2, 1).Formula = "=sheet1!" & (Cells(2, 2).Address & "+" & "sheet1!" & Cells(6, 2).Address)
当我尝试使用SUM或AVERAGE等函数或任何其他函数时,VBA将该函数解释为子宏而不是EXCEL函数
Worksheets("Derived Data").Cells(i, 1).Formula = "=sheet1!" & Sum(Cells(2, 2).Address & ":" & "sheet1!" & Cells(6, 2).Address)
我的推荐错了吗?
注意:已修复单元格和列以进行调试。
答案 0 :(得分:1)
你几乎就在那里,你只是没有正确的语法来让VBA设置公式。试试这个:
Worksheets("Derived Data").Cells(i, 1).Formula = "=Sum(sheet1!" & Cells(2, 2).Address & ":sheet1!" & Cells(6, 2).Address & ")"
答案 1 :(得分:1)
接近试试这个:
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 & ")"