What is the correct syntax for a Do Until Loop? This is my first try attempting and I am getting an error message that says "Loop without Do". Here is what I have:
Dim i As Long
Do
For i = 3 To 93
Sheets("Analysis").Select
Range("B" & i).Copy
Range("R3").PasteSpecial
Sheets("Analysis").Select
Range("Q3").Copy
Range("G" & i).PasteSpecial Paste:=xlPasteValues
Loop Until Sheets("Analysis").Range("L1") < 50
Although I can't figure out what you are trying to acomplish with you loop, the code should be changed to the following in order to make it "correct".
Dim i As Long
Do
For i = 3 To 93
Sheets("Analysis").Select
Range("B" & i).Copy
Range("R3").PasteSpecial
Sheets("Analysis").Select
Range("Q3").Copy
Range("G" & i).PasteSpecial Paste:=xlPasteValues
Next i
Loop Until Sheets("Analysis").Range("L1") < 50
Your code could use some real clean-up.
Dim i As Long
With Sheets("Analysis")
Do Until .Range("L1").Value < 50
For i = 3 To 93
.Range("B" & i).Copy .Range("R3")
.Range("Q3").Copy
.Range("G" & i).PasteSpecial Paste:=xlPasteValues
Next i
Loop
End With
A couple of things. First, make sure that there's a mechanism somewhere that reduces the value in .Range("L1")
to less than 50
. Otherwise, this runs in an infinite loop (because you can't complete the condition to make it stop).
Second, make sure that your For
loops are closed with Next
. Either Next
or Next x
where x
is the iterator variable you defined should work (in your case, x
is i
).
Third, read up on the differences of Do While-Loop
, Do Until-Loop
, Do-Loop While
, and Do-Loop Until
. Until
and While
are pretty self-explanatory. The placement of the condition is a bit of a difficulty for those beginning with loops and should be mastered without question. One really clear explanation can be found here .
Fourth, use With
for sequential or simultaneous actions on a single object. Check this answer out for samples and explanations (check section (3) ).
Hope this helps.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.