I think the best way to learn is to find some data and play with it. I think
it's better to use real data and have a result in mind--so it's not just an
exercise.
John Walkenbach's is a nice one to start with. I think that John Green (and
others) is nice, too (for a second book??). See if you can find them in your
local bookstore and you can choose what one you like best.
Recording a macro is also a good way to learn about excel--not so good for
learning about writing code. It records actions that you do--and that doesn't
always generate good code.
depends on how you learn ... personally i like to play and go hunting down
answers when i can't figure it on my own, others like to attend a well
structured hands-on training course where they are introduced to the basics
of a topic, still others like to read books and some even find learning via
an on-line or CD training course helpful.