- Excel VBA - Basics (23)
- VBA User Forms (21)
- Excel VBA - pivot tables (8)
- Excel VBA - charts (6)
- VBA - advanced (13)
- VBA - working with files (10)
- VBA - linking applications (9)
- VBA - working with Outlook (13)
- Built-in VBA functions (9)
- VBA - working with data (36)
- VBA - scraping websites (17)
- VBA - working with shapes (3)
- VBA - classes and structures (6)
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
- Why do we write If Not Is Nothing in Excel VBA?
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.
There are no files which go with this video.
Making a video bigger
You can increase the size of your video to make it fill the screen like this:
Play your video (the icons shown won't appear until you do), then click on the full screen icon which appears as shown at its bottom right-hand corner.
When you've finished viewing a video in full screen mode, just press the Esc key to return to normal view.
Improving the quality of a video
To improve the quality of a video, first click on the Settings icon:
Make sure you're playing your video so that the icons shown appear, then click on this gear icon at the bottom right-hand corner.
Choose to change the video quality:
Click on Quality as shown to bring up the submenu.
The higher the number you choose, the better will be your video quality (but the slower the connection speed):
Don't choose the HD option unless you have a fast enough connection speed to support it!
Is your Wise Owl speaking too slowly (or too quickly)? You can also use the Settings menu above to change your playback speed.
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.
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:
Do Until ActiveCell.Value = ""
'do something useful
If that's not working for you, you could try using the IsEmpty function instead, like so:
Do Until IsEmpty(ActiveCell.Value)
'do something useful
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.
The simple code I am testing is the following:
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"
ActiveCell.Offset(0, 7).Value = "Negative"
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.
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?