在Excel中将2个数字与VBA循环进行比较时,强制使用小数点后三位
我正在运行一个嵌套循环来比较B列中是否有7个关注数字都高于平均值(D列)控制限制。问题是,当我将三位小数的实际结果与两位小数的平均值进行比较时,它会将结果四舍五入到两位小数。我将这两列格式化为小数点后3位的数字。当我调试。打印时,它将打印在Excel中将2个数字与VBA循环进行比较时,强制使用小数点后三位,excel,vba,Excel,Vba,我正在运行一个嵌套循环来比较B列中是否有7个关注数字都高于平均值(D列)控制限制。问题是,当我将三位小数的实际结果与两位小数的平均值进行比较时,它会将结果四舍五入到两位小数。我将这两列格式化为小数点后3位的数字。当我调试。打印时,它将打印 Sub seven_above_average() Dim i As Integer, j As Integer, count As Integer Dim lastRow As Integer Dim result As Double, limit As
Sub seven_above_average()
Dim i As Integer, j As Integer, count As Integer
Dim lastRow As Integer
Dim result As Double, limit As Double
lastRow = Cells(Rows.count, "A").End(xlUp).Row
count = 0
For j = 12 To lastRow
For i = j - 7 To j
result = Cells(i, 2).Value
limit = Cells(i, 4).Value
If result >= limit Then
count = count + 1
End If
Next i
If count >= 7 Then
For i = j To j - 7 Step -1
Cells(i, 26).Value = 1
Debug.Print ("Result = " & result)
Debug.Print ("Limit = " & limit)
Next i
End If
count = 0
Next j
End Sub
即使结果为1.389和1.388,图片中的所有数据在第二个If条件下均为真
If count >= 7 then...
要扫描最后7个单元格,您必须使用:
For i = j - 6 To j
而不是:
For i = j - 7 To j
哈哈,当然是这么简单。谢谢你的名字。