I'm a huge fan of John Walkenback's Power Programming With VBA series. You can find a link to that book (among others) here: http://www.excelguru.ca/content.php?213-Books
If you really want to learn though, you need more than just a book. You can't get better learning that working on your own projects on a forum, and by trying to answer others questions as you start to get more comfortable. With the basics from a book and challenging yourself with real world problems your knowledge will expand very quickly.
Personally, I learned VBA by recording macros first, then found a forum and began asking a LOT of questions, then got John's 2002 Power Programming book, then started trying to give back in forums. Each time I hit a forum my knowled increased exponentially.
Ken Puls, CMA, MS MVP (Excel)
Main Site: http://www.excelguru.ca -||- Blog: http://www.excelguru.ca/blog -||- Forums: http://www.excelguru.ca/forums
Check out the Excelguru Facebook Fan Page -||- Follow Me on Twitter
If you've been given VBA code (a macro) for your solution, but don't know where to put it, CLICK HERE.