这是我写的一段代码:
Dim fChkSum, fSum As Double For iCount = iRow To iRowCount
fSum = ActiveSheet.Range(sColumn_Sum & iCount).Value
fChkSum = ActiveSheet.Range("F" & iCount).Value + _
ActiveSheet.Range("G" & iCount).Value + _
ActiveSheet.Range("H" & iCount).Value
If fSum <> fChkSum Then
iAns = MsgBox("不等")
End If
Next iCount作用是检查两个变量是否相等,但奇怪的是对某些行,fSum,fChkSum明明相等,比如说在监视中两个都等于3.5,fSum <> fChkSum却成立!!!???真是........请大家帮帮忙,谢谢!!!
Dim fChkSum, fSum As Double For iCount = iRow To iRowCount
fSum = ActiveSheet.Range(sColumn_Sum & iCount).Value
fChkSum = ActiveSheet.Range("F" & iCount).Value + _
ActiveSheet.Range("G" & iCount).Value + _
ActiveSheet.Range("H" & iCount).Value
If fSum <> fChkSum Then
iAns = MsgBox("不等")
End If
Next iCount作用是检查两个变量是否相等,但奇怪的是对某些行,fSum,fChkSum明明相等,比如说在监视中两个都等于3.5,fSum <> fChkSum却成立!!!???真是........请大家帮帮忙,谢谢!!!
然后你的声明也好像有点问题: Dim fChkSum , fSum As Double->Dim fChkSum As Double, fSum As Double
还不行的话,记得微软承认在VBA里有数据精度方面的问题,建议: Dim fChkSum As Currency, fSum As Currency
建议不要在VB中这样声明多个变量
Dim I, J, K As Integer
这样声明以后,K倒是被声明为所期望的整型
而I,J却是被默认为Variant不过这种令人迷惑的情形在VB.NET中已经得到改变
效果就像和C/C++中声明变量的一样
int i, j, k //i, j, k都是整型变量
Dim I, J, K As Integer //I,J,K都是整型变量(VB.NET中)