In addition to @ChrisHemedinger's excellent advice, when you start working with the macro code save your source code before every test run. There are common mistakes regarding missing semicolon's, quotes, parantheses and such that when used with the macro language can confuse SAS as to what you are doing and it will look like it is doing nothing because you have stacked up errors that SAS hasn't reached a place in processing to report the errors.
Also learn the options MPRINT SYMBOLGEN and MLOGIC to help debugging macro code.
... View more