BY CATEGORY
VBA CATEGORIES
EXCEL VBA - BASICS VIDEOS
- Excel VBA Part 1 - The VB Editor
- Excel VBA Part 2 - Writing Your First Macro
- Excel VBA Part 3 - What To Do When Things Go Wrong
- Excel VBA Part 4 - Buttons, Toolbars and Keyboard Shortcuts
- Excel VBA Part 5 - Selecting Cells
- Excel VBA Part 6 - Worksheets, Charts and Sheets
- Excel VBA Part 7 - Working with Workbooks
- Excel VBA Part 8 - Variables in VBA
- Excel VBA Part 9 - Object Variables
- Excel VBA Part 10 - Message Boxes
- Excel VBA Part 11 - Input Boxes
- Excel VBA Part 11a - Application.InputBox
- Excel VBA Part 12 - With Statements
- Excel VBA Part 13.1 - If Statements in VBA
- Excel VBA Part 14.1- Select Case Statements
- Excel VBA Part 15.1 - Do Until and Do While Loops
- Excel VBA Part 16 - For Next Loops
- Excel VBA Part 17 - For Each Loops
- Excel VBA Part 18 - Creating Functions
- Excel VBA Part 19 - Error Handling
- Excel VBA Part 20 - Event Procedures
- Excel VBA Part 21 - User Forms
Excel VBA - Basics videos | Excel VBA Part 15.1 - Do Until and Do While Loops
Posted by Andrew Gould on 06 February 2014
Do Loops in VBA allow you to carry out a set of instructions repeatedly until some kind of condition is met. This video teaches you about the basics of the Do Loop statement including how to write Do Until and Do While loops, where to place your conditional statements and how to exit from a loop. The final part of the video provides a couple of longer examples using Do Loops.
You can increase the size of the video:

You can view the video in full screen mode as shown on the left, using the icon at the bottom right of the frame.
You can also increase the quality of the video:

You can improve the resolution of the video using another icon at the bottom right of the frame. This will slow down the connection speed, but increase the display and sound quality. This icon only becomes visible when you start playing the video.
Finally, if nothing happens when you play the video, check that you're not using IE in compatibility view.
Hi,
I was wondering if you could help with the following question. Why the Do Loop stops when it comes accross a value of 0 in a table with integer numbers? How can I handle such a case?
Thanks in advance for the help.
Costas
Hi, what have you written as your Do Until or Do While statement? If you're testing for an empty string as shown in the video then this code will reach the end of the list, even if it contains 0:
Range("A1").Select
Do Until ActiveCell.Value = ""
'do something useful
ActiveCell.Offset(1, 0).Select
Loop
If that's not working for you, you could try using the IsEmpty function instead, like so:
Range("A1").Select
Do Until IsEmpty(ActiveCell.Value)
'do something useful
ActiveCell.Offset(1, 0).Select
Loop
I hope that helps!
Hi thanks for the prompt response. I think I got it..
Excel reads the 0 number as an empty cell. So the loop stops because of that. Hence, in my vba code which manipulates time-series price data, I need to add some kind of condition (eg. offset) for the loop to continue.
Thanks a lot once more.
The Empty keyword is used for testing uninitialised Variant variables, not the contents of cells. That's why this video doesn't include any mention of using the Empty keyword.
Hi Andrew,
The simple code I am testing is the following:
Sub DoUntilStatemet()
Range("b1").Select
Do Until ActiveCell = Empty
Select Case ActiveCell
Case 0 To 0.5
ActiveCell.Offset(0, 7).Value = "Positive"
Case 0.51 To 1
ActiveCell.Offset(0, 7).Value = "Very Positive"
Case Else
ActiveCell.Offset(0, 7).Value = "Negative"
End Select
ActiveCell.Offset(1, 0).Select
Loop
End Sub
I notice a difference between the keyward "Empty" that I use instead of " " or the function "IsEmpty".
Empty works with non-zero values. The other suggestions work regardless. I didnt knew that detail.
Thanks
Hi, it shouldn't be necessary to add another condition - both of the examples shown above will loop to the end of a list which contains 0. Which condition are you testing for in your current code?