【问题标题】:Using a variant of the SUMPRODUCT formula in VBA在 VBA 中使用 SUMPRODUCT 公式的变体
【发布时间】:2023-03-14 05:22:02
【问题描述】:

我想在 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 编写该公式及其值?

【问题讨论】:

  • 向我们展示工作表。你正在用一个范围划分一个双精度数
  • 是的。 Excel 可以处理。 :-)

标签: excel vba function sumproduct


【解决方案1】:

尝试使用 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

【讨论】:

    【解决方案2】:

    包裹在evaluate

    将 Microsoft Excel 名称转换为对象或值。

    Name... Variant .....公式或对象的名称,使用命名 Microsoft Excel 的约定。名称的长度必须小于或等于 255 个字符。

    Application.Evaluate("=SUMPRODUCT(A1:A2,C1/B1:B2)")
    

    【讨论】:

    • 感谢您的解决方案。我在 youtube 上看到了一个解释评估功能的视频!这会节省我很多时间! :-) 在同一张纸条上,我学习了 debug.print 以及括号如何在 vba 中工作! :-)
    • 和选项显式。 :-)
    猜你喜欢
    • 1970-01-01
    • 2021-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-11
    • 2022-01-24
    • 1970-01-01
    相关资源
    最近更新 更多