循环不会停止,导致溢出

时间:2014-05-30 21:10:06

标签: excel vba loops overflow

我是VBA的新手,这看起来很简单,但是当我运行代码时,它会继续创建随机数,直到它最终给我一个溢出消息。我可以告诉它可以读取总数,但我不知道为什么它不会停止。

Dim i As Integer
Dim total As Integer
i = 1
total = Range("C1")

Do While total < 180
    Cells(i, 1).Value = Int((10 - 3 + 1) * Rnd + 3)
    i = i + 1
Loop

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

我假设C1有某种类型的总和或某些东西正在增长,而VBA正在填充数字,如果是这种情况那么你只需要在每个循环结束时重新评估总数。这对我有用......

Dim i As Integer
Dim total As Integer
i = 1
total = Range("C1")

Do While total < 180
    Cells(i, 1).Value = Int((10 - 3 + 1) * Rnd + 3)
    i = i + 1
    Application.Calculate 'Only needed if manual calculation is on
    total = Range("C1")
Loop

答案 1 :(得分:1)

我认为您在while循环中使用了错误的变量。你的意思是总&lt; 180或i&lt; 180?