SumIf 给出没有小数的答案

SumIf gives answer without decimals

我正在使用 VBA 对我的 SumRange 中的单元格值求和,因为它们是正数。该代码有效,但是,当它应该有小数位时,它没有返回带小数位的答案。

RecebimentosValor = WorksheetFunction.SumIf(SumRange, ">0")

一定要用Double:

Sub ytrewq()
    Dim SumRange As Range, RecebimentosValor As Double
    Set SumRange = Range("A1:A10")
    RecebimentosValor = WorksheetFunction.SumIf(SumRange, ">0")
    MsgBox RecebimentosValor
End Sub

我认为

没有问题
Sub M_snb()
 y = [sum((A1:A12>0)*(A1:A12))]
 y = Application.SumIf(Range("A1:A12"), ">0")
End Sub

不总是。这取决于您的输入。如果您输入的是十进制格式,那么 输出将以十进制形式产生。简单的数学规则。