本帖最后由 raymanrrr 于 2017-4-4 07:18 编辑
立即窗口输入
?jf-df 得到了个
-4.65661287307739E-10
可见确实是不等的,具体原因我也想不出来为何两位数的double类型累加会产生一个0.000000000000000004的多余部分
第一个宏按我的风格重新写了下
Sub Pingheng()
Dim jf As Double
Dim df As Double
For j = Cells(1, "L").Value To Cells(2, "L").Value
jf = 0
df = 0
For i = 2 To Range("B65536").End(3).Row
If Cells(i, "B").Value = j Then
jf = Cells(i, "G").Value + jf
df = Cells(i, "H").Value + df
End If
Next
‘round函数写在最后
jf = Round(jf, 2)
df = Round(df, 2)
If Not jf = df Then
MsgBox ("第" & j & "号凭证不平衡!")
Exit Sub
End If
Next
MsgBox ("所有凭证都平衡")
End Sub
打印那个说实在话我实在看吐了不想看了,总之把len(s)替换成len(round(s,0))应该就没问题了,你自己试试,试前记得备份下,查找替换记得在当前过程内进行