我有极其简单的循环,或者我想,这是拒绝介入。每当我运行主代码时,这是一个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 = 1
和For a = 55 To 15 Step -0.25
行
任何帮助都会被批评。谢谢
答案 0 :(得分:2)
您应该将a
声明为浮点值。
例如。 Dim a as Double
目前它是Long
,55 - 0.25
在这种情况下始终为55
。
看一下这个例子,当计数器被声明为一个整数(整数)值时,显示1+0.49
是1
:
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