3

我正在尝试制作一个 VBA 模块来汇总单元格,不包括带有删除线的单元格。我在下面使用的代码效果很好,但不会计算小数。例如,'5 + 5.50' 将等于10.00我希望代码将小数值保留到小数点后两位,这样上面的总和就是10.50.

Public Function ExcStrike(pWorkRng As Range) As Long
'Update 20140819
Application.Volatile
Dim pRng As Range
Dim xOut As Long
xOut = 0
For Each pRng In pWorkRng
If Not pRng.Font.Strikethrough Then
xOut = xOut + pRng.Value
End If
Next
ExcStrike = xOut
End Function
4

1 回答 1

4

为了回答:

Long 数据类型包含整数。

每个 OP:

解决方案是将“As Long”更改为“As Single”

我想我应该添加一些关于Single的细节

保存带符号的 IEEE 32 位(4 字节)单精度浮点数,负值范围为 -3.4028235E+38 到 -1.401298E-45,正值范围为 1.401298E-45 到 3.4028235E+38 . 单精度数存储一个实数的近似值。

于 2015-02-13T16:14:37.910 回答