我的最后一行包含上述单元格的总和(7,6)。这是一个这样的公式:=SUM(E6:E26)
此外,只要有效值不等于7.6,我会将一些vba编码为红色。奇怪的是有时SUM值不被认为是7,6,即使它是。然后有时它是红色的,应该是黑色的。
以下是代码:
If (Cells(TABLE_TOTAL_ROW, curCol).Value = 7.6) Then
''' Set text in black (automatic)
With Cells(TABLE_TOTAL_ROW, curCol).Font
.ColorIndex = xlAutomatic
.TintAndShade = 0
End With
Else
''' Set text in red
With Cells(TABLE_TOTAL_ROW, curCol).Font
.Color = -16776961
.TintAndShade = 0
End With
End If
下面:我设置一个断点:在立即窗口中,我得到7,6
的值。在那之下,我比较并返回false
对我来说很奇怪。
答案 0 :(得分:1)
不要将浮点值与等值进行比较,因为某些值无法准确表示。
7.6 is probably 7.5999999 (or similar)
不匹配的7.6正在显示四舍五入。
改为使用容差:
if Abs(x - y) < tolerance
其中公差是一个像0.000001
的值