我正在运行以下程序,并且在程序到达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代码**请求**以解释计算术语和公式。或有意义的标识。或两者。 –