问题描述
我想在 VBA 中使用以下类型的 SUMPRODUCT
公式:
=SUMPRODUCT(A1:A2,C1/B1:B2)
它在 excel 中运行良好,但是当将它用作 VBA 函数时,它会给出 #VALUE!结果:
Function Test(LineA As Range,LineB As Range,ValueC As Double)
Test = Application.WorksheetFunction.SumProduct(LineA,ValueC / LineB)
End Function
如何使用 vba 编写带有其值的公式?
解决方法
将其包裹在 evaluate
将 Microsoft Excel 名称转换为对象或值。
Name... Variant .....一个公式或对象的名称,使用命名 Microsoft Excel 的约定。名称的长度必须小于或等于 255 个字符。
Application.Evaluate("=SUMPRODUCT(A1:A2,C1/B1:B2)")
,
尝试使用 Evaluate 方法...
Function Test(LineA As Range,LineB As Range,ValueC As Double)
Test = Evaluate("SUMPRODUCT(" & LineA.Address(external:=True) & "," & LineB.Address(external:=True) & "/" & ValueC)
End Function