[英]run loop step on decimal on vba get stuck
這是我的代碼來解決vba上的利率,但是循環將運行到死!
請幫助我找到代碼上的問題!
非常感謝你!!!
Sub rate()
Dim r As Long
Dim y As Long
Dim term0 As Long
Dim term1 As Long
Dim term2 As Long
Dim term3 As Long
Dim term4 As Long
For r = 0.05 To 0.08 Step 0.001
term0 = 10000
term1 = 14000 / (1 + r)
term2 = 18000 / (1 + r) ^ 2
term3 = 22000 / (1 + r) ^ 3
term4 = 25000 / (1 + r) ^ 4
y = term0 + term1 + term2 + term3 + term4
If y <= 75000 Then
MsgBox (r)
End If
Next r
End Sub
謝謝simoco和謎!
修改后,下面的代碼效果很好!
Sub rate()
Dim r As Double
Dim y As Long
Dim term0, term1, term2, term3, term4 As Long
r = 0.06
Do
r = r + 0.00001
term0 = 10000
term1 = 14000 / (1 + r)
term2 = 18000 / (1 + r) ^ 2
term3 = 22000 / (1 + r) ^ 3
term4 = 25000 / (1 + r) ^ 4
y = term0 + term1 + term2 + term3 + term4
Loop Until y <= 75000
Cells(11, 11) = r
Cells(14, 12) = term0
Cells(15, 12) = term1
Cells(16, 12) = term2
Cells(17, 12) = term3
Cells(18, 12) = term4
Cells(20, 12) = y
End Sub
更改
Dim r As Long
至
Dim r As Double
由於在類型轉換后將r
聲明為Long
,因此循環將變為:
For r = 0 To 0.08 Step 0.001
'code
Next r
但分配當r = 0.05
,實際值r
將是0
和r=0+0.001
會給你0
為好。 由於r
從不增加,因此會產生無限循環。
順便說一句 ,由於您使用double值進行操作,為了正確起見,您還應該將另一個值也從Long
類型更改為Double
Long vs Double在其他地方已經被提及。
接下來的事情是在循環中的某個地方添加DoEvents。 這樣就可以中斷腳本的執行,也可以使Excel響應(更好)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.