代码不计算小数位

时间:2015-02-13 15:22:20

标签: excel vba excel-vba decimal strikethrough

我正在尝试制作一个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

1 个答案:

答案 0 :(得分:4)

为了回答:

Long数据类型包含整数。

每个OP:

  

解决方案是改变“长期”。单身'单身'

我想我应该添加一些关于Single

的细节
  

保持签名的IEEE 32位(4字节)单精度浮点数,范围从-3.4028235E + 38到-1.401298E-45为负值,从1.401298E-45到3.4028235E + 38为正值。单精度数字存储实数的近似值。