运行时错误6在Excel中的VBA中溢出

人际交往

我正在运行以下程序,一旦程序到达,就会在第一次迭代时出现溢出错误a从我的理解来看,这不会发生,因为我使用的Doubles的容量非常大,而且Long却很长,但是由于当前最多只能存储100个,所以这并不重要,并且代码在此之前就失败了。这是我的原始输入:

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 17分钟前

@John Coleman我现在看到了问题,我正在执行拖动方程式,但是我忘记了将项除以m,谢谢。– Anthrochange 9分钟前

您已经确定需要做什么。

现在来解释为什么溢出m * g - b * (v ^ 2)我添加了一个手表,如下所示

考虑之前和之后的屏幕截图

之前v = v0 + a0 * dt计算

在此处输入图片说明

经过v = v0 + a0 * dt计算

在此处输入图片说明

您在这里看到的是一个非常特殊的行为。类型Double更改为Integer

这是不正常的,以前已经经历过。不幸的是,此问题在Excel中已经存在很长时间了,不幸的是在Excel 2016中也存在。仅当您使用非常大的数字时才会出现。这些错误很少见,但是确实存在。

MOD如以下链接所述,使用时可能会有类似的体验

MOD功能

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

运行时错误“424” - Excel 中的 VBA

运行时错误 6 溢出

在 var 中存储日期时出现运行时错误“6”溢出

复制行时VBA-Excel中的运行时错误1004

VBA 错误运行时错误 6 '溢出',是什么问题?

运行时错误'28':Excel VBA中的堆栈空间不足,并且Excel崩溃

错误处理不适用于 excel-vba 中的运行时错误 9

VBA Excel中的“运行时错误13:类型不匹配”错误

VBA中拆分功能中的错误运行时“ 9”

获取运行时错误“6”:溢出错误

运行时错误13 VBA Excel

Excel VBA运行时错误1004

分配工作簿变量时Excel / VBA中的运行时错误91

使用VBA从受保护的网站导入Excel中的数据时出现运行时错误438

无法在Excel VBA中打开文件,运行时错误为“ 52”

VBA Excel中的ADODB.Recordset运行时错误91

使用Excel VBA在工作簿中查找匹配项:运行时错误1004

Excel运行时错误13中的VBA:类型不匹配

在单元格中插入值或公式时,Excel VBA运行时错误1004

Excel VBA中的字符串连接因运行时错误而失败

Excel VBA:在单元格中插入公式会给出运行时错误“ 1004”

在Excel VBA中复制和粘贴单元格值:编译和运行时错误

长嵌套的IF语句在Excel VBA中创建运行时错误1004

在Excel VBA中删除多个列时出现运行时错误1004

在 VBA 中执行 SQL 时出现运行时错误

MS ACCESS - VBA 中的错误运行时 3141 SQL

VBA 中的 IF 条件公式 - 运行时错误“1004”

Tomcat 6中的Toplink运行时错误

Excel 2010中的运行时错误1004刷新BackgroundQuery