When you execute code with macro variables in it, the value of the macro variable is used in place of the macro variable, and this must create valid legal working SAS code.
So, when you run this line of code
if &rule.name <= 350 then do;
SAS really executes this:
if 'column_name' <= 350 then do;
Can you see why this is not a valid SAS statement that causes errors?
It will work if you remove the quotes, assuming COLUMN_NAME is really a numeric variable name that exists in the data set. Whether or not that is what you want is another issue.
--
Paige Miller