VBA - Do..While循环For循环

时间:2017-09-21 07:53:56

标签: excel vba loops nested-loops

我正在学习VBA,我尝试在for循环中嵌套一个do-while-loop,但外部for循环似乎没有效果(整个Sub只运行一次),虽然它运行没有错误。有人可以帮助我吗? :)

我的代码:

Sub DoWhileDemo()
    Dim Cnt As Integer
    Cells(1, 1).Activate 'just meant as an in-case

    For Cnt = 1 To 100 Step 1
        Do While ActiveCell.Value <> Empty
            ActiveCell.Value = ActiveCell.Value * 2
            ActiveCell.Offset(1, 0).Select
        Loop
    Next Cnt
End Sub

2 个答案:

答案 0 :(得分:2)

cnt=1ActiveCell为空时,do while循环结束。目前,ActiveCell为空,因此对于cnt=2100,do while循环永远不会执行。

cells(1,1).activate指令后移动for

答案 1 :(得分:1)

Nop,我只需要将Cell(1,1).Activate作为For循环的第一行,以确保它继续被带回&#34; start&#34;以便while循环可以运行,我修复了代码。问题已解决:)

Sub DoWhileDemo()
    Dim Cnt As Integer
    For Cnt = 1 To 100 Step 1
        Cells(1, 1).Activate
        Do While ActiveCell.Value <> Empty
            ActiveCell.Value = ActiveCell.Value * 2
            ActiveCell.Offset(1, 0).Select
        Loop
    Next Cnt
End Sub