我正在学习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
答案 0 :(得分:2)
cnt=1
当ActiveCell
为空时,do while循环结束。目前,ActiveCell
为空,因此对于cnt=2
到100
,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