In Excel, only the Application and Window classes have a Selection property. I could amend the code for you, but I get the impression that you would really like to nail this yourself.
Mike Rosenblum, who is a MS Excel MVP, wrote a really great article on automating Excel from VB6 and on how to spot and deal with unqualified references. Don't be put off by the fact that it is VB6 - the same rules and techniques will apply for MS Access VBA. The article can be found on a DBForum sister site called Xtreme
VB Talk:
Automating Excel from VB 6.0 - Xtreme Visual Basic Talk
In the Excel object model, it is hardly ever necessary to activate or select worksheets and ranges. Using the selection object slows code down, loses intellisense and introduces buggy behaviour. The macro recorder produces code which contains a lot of it (because users have to select cells in order to edit them etc...) which is why it is seen in so many examples when it really should be avoided.
Of course, to clean up code and get rid of the Selection/Select's, you have to figure out which object the Selection references. In this case you haven't shown the entire set of code within the loop, but for the loop to finish it will be dependent on the next cell being selected each time: this means that you will have to redesign your loop so it works directly with the ranges rather than with the selection object.
If none of this makes sense then I'll be more than happy to post some revised code for you (if another member doesn't beat me to it).
