%MACRO FIND_CLOSEST_VALUE(limOrDedOption,limorDedValue); %LET numOptions = %Sysfunc(Countw(&limOrDedOption.)); limOrDedSetFlag = 'N'; %DO curLimOrDed = 1 %TO &numOptions.; IF limOrDedSetFlag = 'N" AND &curlimOrDed > 1 THEN DO; lwrVal = %Scan(&limOrDedOption., &curLimOrDed. - 1); uprVal = %Scan(&limOrDedOption., &curLimOrDed.); IF &limOrDedValue. < uprVal THEN DO; IF (&limOrDedValue. - lwrVal)/(uprVal - lwrVal) < 0.5 THEN &limOrDedValue = lwrVal; ELSE &limOrDedValue = uprVal; END; END; %END; %MEND; Receiving an error: ERROR: A character operand was found in the %EVAL function or %IF condition where a numeric operand is required. The condition was: prevLimOrDed ERROR: Argument 2 to macro function %SCAN is not a number. Error occurs on the lwrVal. uprVal is fine. It's almost as if the if condition is not met on the &curLirOrDed > 1 Any ideas?
... View more