VBA嵌套循环variables赋值

我需要遍历我的Excel电子表格的行,如果一列中存在特定值,请将同一行中另一列的值复制到电子表格的另一部分。 我还需要根据第一列中的值来对另一列中的值进行求和。

总的来说,我的代码运行良好,除了一小部分。 为了避免迭代和复制具有重复值的行,我想在下面的嵌套循环语句中重新设置“x”(我的行计数器)的值,这个行的最低行是我得到的。 在这种情况下,我想“x”迭代到“GoDown”的值,假设“GoDown”大于0.但是,当我这样做时,我的代码挂起。 当我避免最后的“if … else”语句,并使用“x = x + 1”时,它工作正常。

谁能告诉我发生了什么事情,或者如何解决? 它挂在第二个范围指定的声明,这似乎是一个奇怪的地方。 非常感谢您的帮助,如果我能澄清一下,请告诉我。

Sub NumberCheck() Dim x As Integer Dim GoDown As Integer Dim n As Integer x = 2 n = 0 Do Until Range("D" & x) = "" If Range("D" & x) > 50 Then Range("F" & x).Value = Range("A" & x).Value Range("G" & x).Value = Range("D" & x).Value GoDown = x Do Until Range("C" & GoDown) = 0 n = n + Range("C" & GoDown).Value Range("J" & x).Value = Range("B" & GoDown).Value GoDown = GoDown + 1 Loop Range("H" & x).Value = n n = 0 End If If GoDown > 0 Then x = GoDown Else x = x + 1 End If Loop End Sub 

我解决了我自己的问题。 我不小心创造了一个无限循环! 如果它帮助别人,我会留下来的。

我没有意识到,当我将“x”迭代到“GoDown”时,有时“GoDown”会低于“x”,从而造成我的无限循环。 为了解决这个问题,我在最后的If … Else中添加了AND语句,以确保“x”总是变大。 现在一切正常。 显示我是新手,我猜。

 If GoDown > 0 And x < GoDown Then x = GoDown Else x = x + 1 End If