我正在運行以下程序,並且在程序到達a
後的第一次迭代中出現溢出錯誤。根據我的理解,這不應該發生,因爲我使用的雙倍容量和容量很大,但是由於目前只有100個,所以不應該出現問題,而且代碼在很久之前就會失效。這是我原來的輸入:運行時錯誤6 excel中的vba溢出
h0 = 1000, v0 = 0, a0 = g = -9.80665, dt = .01, m = 752.2528, b = .287875
和下面的代碼:
Sub drag()
Dim h0 As Double
Dim v0 As Double
Dim a0 As Double
Dim dt As Double
Dim m As Double
Dim b As Double
Dim g As Double
Dim i As Long
Dim h As Double
Dim v As Double
Dim a As Double
h0 = Worksheets("Drag").Cells(2, 8).Value
v0 = Worksheets("Drag").Cells(2, 9).Value
a0 = Worksheets("Drag").Cells(2, 10).Value
g = Worksheets("Drag").Cells(2, 10).Value
dt = Worksheets("Drag").Cells(2, 7).Value
m = Worksheets("Drag").Cells(2, 4).Value
b = Worksheets("Drag").Cells(2, 5).Value
Debug.Print h0 & v0 & a0 & dt & m & b
For i = 1 To 100
v = v0 + a0 * dt
h = 0.5 * a0 * (dt^2) + v0 * dt + h0
a = m * g - b * (v^2) 'Line where overflow occurs
v0 = v
h0 = h
a0 = a
Cells(i + 2, 8) = h0
Cells(i + 2, 9) = v0
Cells(i + 2, 10) = a0
Next i
Debug.Print h0 & v0 & a0 & dt & m & b
End Sub
希望這是一個容易解決。
當'i = 14'(第14次通過循環)和'v = -1.689 x 10^209'時,發生溢出。我不知道你在做什麼,但是'v'正在炸燬。如果你描述你正在嘗試做什麼,這將有所幫助。 –
@John Coleman我現在看到了這個問題,我正在做拖動方程式,我忘了用m來劃分一個術語,謝謝。 – Anthrochange
FWIW代碼**請求**以解釋計算術語和公式。或有意義的標識。或兩者。 –