SumC = SumC + 1 / WorksheetFunction.CountIf(c, cell)的问题
sh210 2008-09-08 10:59:41 最近在看vba,今天看到一段代码,调试后发现问题很怪
Dim cell As Range
Dim SumC As Integer
Dim CountBlank As Integer
SumC = 0
CountBlank = 0
For Each cell In c
If VBA.IsEmpty(cell) Then
CountBlank = CountBlank + 1
Else
SumC = SumC + 1 / WorksheetFunction.CountIf(c, cell)
End If
Next cell
单元格区域的内容是6,4,4,2,2
遍历到第一个4的时候Sumc 应该 = 1+1/2 =1.5,可是调试结果=2,我在想可能是四舍五入的问题
但是到第二个4得时候Sumc = 2+1/2 =2.5,我想这次也应该四舍五入了吧,可是调试结果=2
一直到遍历完,Sumc=2,
很奇怪第一个加0.5和第二个加0.5有什么不同
后又测试区域内容为:6,4,4,2,2,3,7,7,7
发现到遍历过到了3以后,也就是一旦WorksheetFunction.CountIf(c, cell)=1,其后得+0.5得效果一定会等于+1
很搞不懂,请高手赐教