对于循环拒绝单步执行

时间:2018-01-22 10:20:42

标签: excel vba excel-vba for-loop

我有极其简单的循环,或者我想,这是拒绝介入。每当我运行主代码时,这是一个exsert,代码似乎没有运行,我已经缩小到这个For循环。

Sub Test_3()

Dim b As Double
Dim a As Long
Dim xvalues As Double
Dim yvales As Double

b = 1

For a = 55 To 15 Step -0.25

    xvalues = a

    yvalues = (-0.000005023488366 * ((xvalues) ^ 6)) + (0.000988717992 * ((xvalues) ^ 5)) - (0.07843393602 * ((xvalues) ^ 4)) + (3.20338362 * ((xvalues) ^ 3)) - (70.82720195 * ((xvalues) ^ 2)) + (807.4320705 * xvalues) - 3512.053837

    Cells(1 + b, 12) = yvalues

    b = b + 1

Next a

End Sub

当我为每一行添加断点时,我发现在For a = 55 to 15 Step -0.25之后代码似乎结束了。我不知道为什么会这样。如果我按住F5,断点标记会在b = 1For a = 55 To 15 Step -0.25

之间跳跃

任何帮助都会被批评。谢谢

1 个答案:

答案 0 :(得分:2)

您应该将a声明为浮点值。 例如。 Dim a as Double

目前它是Long55 - 0.25在这种情况下始终为55

看一下这个例子,当计数器被声明为一个整数(整数)值时,显示1+0.491

Sub TestMe()
    Dim a As Long
    For a = 1 To 3 Step 0.49 'change to 0.5 to see difference
        Debug.Print a
        Stop                 'if you remove the Stop, you would go to infinite loop
    Next a
End Sub