VBA中的溢出错误

VBA中的溢出错误,vba,overflow,Vba,Overflow,我在以下代码段中遇到溢出错误: Sub Button3_Click() Dim inc As Integer Dim i, j As Integer Dim sem_new As Double Dim aff_new As Double Dim imu_new As Double 'Initialising Lever variables sem_new = Sheets("Front end").Range("C6").Value

我在以下代码段中遇到溢出错误:

Sub Button3_Click()
    Dim inc As Integer
    Dim i, j As Integer

    Dim sem_new As Double
    Dim aff_new As Double
    Dim imu_new As Double


    'Initialising Lever variables
     sem_new = Sheets("Front end").Range("C6").Value
     aff_new = Sheets("Front end").Range("D6").Value
     imu_new = Sheets("Front end").Range("E6").Value
     'Initializing increment variable
     inc = 1
     If Sheets("Control Sheet").Range("D5").Value = "Overall" Then
         MsgBox ("Overall")
     Else
         For i = 8 To 408
             j = 3
             sem_new = sem_new + 10000
             aff_new = aff_new + 10000
             imu_new = imu_new - 10000
             Sheets("Front end").Select
             'Line where overflow occurs 
             Sheets("Front end").Cells(i, j).Value = ((Sheets("Front end").Range("F6").Value * ((sem_new / Sheets("Front end").Range("C6").Value) ^ Sheets("Front end").Range("H6").Value) * Sheets("Front end").Range("K6").Value) - (Sheets("Front end").Range("F6").Value * Sheets("Front end").Range("K6").Value)) / (inc * 10000) '<<<<< HERE
             j = j + 1
             Sheets("Front end").Cells(i, j).Value = ((Sheets("Front end").Range("F6").Value * ((aff_new / Sheets("Front end").Range("D6").Value) ^ Sheets("Front end").Range("I6").Value) * Sheets("Front end").Range("K6").Value) - (Sheets("Front end").Range("F6").Value * Sheets("Front end").Range("K6").Value)) / (inc * 10000)
             j = j + 1
             Sheets("Front end").Cells(i, j).Value = ((Sheets("Front end").Range("F6").Value * ((imu_new / Sheets("Front end").Range("C6").Value) ^ Sheets("Front end").Range("J6").Value) * Sheets("Front end").Range("K6").Value) - (Sheets("Front end").Range("F6").Value * Sheets("Front end").Range("K6").Value)) / (inc * 10000)
             inc = inc + 1
         Next i
     End If

End Sub

代码在3次迭代中运行良好,但在第四次迭代中抛出溢出错误。公式中使用的数字均不超过数百万。错误出现的那一行在下面突出显示。如有任何帮助,请提供初始种子,以便进行复制,+最好突出显示溢出发生的行,或者插入注释我建议您将相关单元格值提取到正确声明的变量中,然后发布您的帖子,以便我们可以更轻松地帮助您确定F*x/C^H*K-F*K/y*10000爆炸的位置和原因,假设我得到了正确的大括号。当我看到,基于@Mat'sMug重构,第一项是F*x/C^H*K,并且每次迭代时x=x+10000,考虑到您从未释放堆栈,因为您在单元格的.Value中执行所有操作,溢出似乎是意料之中的。在分解操作步骤并观察哪个步骤溢出时,您是否尝试过调试?好的,在看到这些值之后,我会说溢出对您的计算机来说太严重了:尝试分解操作,堆栈不能包含上面注释中突出显示的第一部分,请不要使用单字母名称,始终使用有意义的标识符;