Read our blogs, tips and tutorials
Try our exercises or test your skills
Watch our tutorial videos or shorts
Take a self-paced course
Read our recent newsletters
License our courseware
Book expert consultancy
Buy our publications
Get help in using our site
547 attributed reviews in the last 3 years
Refreshingly small course sizes
Outstandingly good courseware
Whizzy online classrooms
Wise Owl trainers only (no freelancers)
Almost no cancellations
We have genuine integrity
We invoice after training
Review 30+ years of Wise Owl
View our top 100 clients
Search our website
We also send out useful tips in a monthly email newsletter ...
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.
See our full range of VBA training resources, or test your knowledge of VBA with one of our VBA skills assessment tests.
There are no files which go with this video.
There are no exercises for this video.
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 above.
When you've finished viewing a video in full screen mode, just press the Esc key to return to normal view.
To improve the quality of a video, first click on the Settings icon:
Make sure yoiu're playing your video so that the icons shown above appear, then click on this gear icon.
Choose to change the video quality:
Click as above to change your video quality.
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 shown unless your connection speed is fast enough 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.
From: | Costas |
When: | 24 Apr 17 at 11:26 |
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
From: | Andrew G |
When: | 24 Apr 17 at 11:56 |
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!
From: | Costas |
When: | 24 Apr 17 at 12:24 |
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.
From: | Andrew G |
When: | 25 Apr 17 at 11:23 |
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.
From: | Costas |
When: | 25 Apr 17 at 09:30 |
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
From: | Andrew G |
When: | 25 Apr 17 at 06:49 |
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?
Kingsmoor House
Railway Street
GLOSSOP
SK13 2AA
Landmark Offices
99 Bishopsgate
LONDON
EC2M 3XD
Holiday Inn
25 Aytoun Street
MANCHESTER
M1 3AE
© Wise Owl Business Solutions Ltd 2024. All Rights Reserved.