简体   繁体   中英

Syntax for Do Until Loop

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM