Since you have a Base SAS and not a macro problem, test your code first without macro logic:
proc import
datafile="D:\Users\emma\Documents\DDS\RMTable\file.txt"
out=file
replace
;
run;
%let i=1;
data _null_;
set file;
if _n_=&i then do;
call symput('ss', aa);
end;
run;
%put &ss &i;
proc import
datafile="D:\Users\emma\Documents\DDS\RMTable\&ss"
out=rm&i
replace
;
sheet = "RMTable";
run;
data rmyyyymm&i;
set rm&i;
format yyyymm $6.;
yyyymm = substr(&ss,1,6);
run;
data rm_all;
set rm_all rmyyyymm&i;
run;
See that I added some consistent visual structure to your code to make it easier to read and understand (Maxim 12).
Without the macro around it, the ERROR message will now appear at the crucial point in your code, and alert you correctly to your mistake, which @PeterClemmensen already pointed out.
Macro development always starts with working SAS code; had you started with that, you would have realized you have to put a string (with quotes) in that position, and would have replace the text within that string with the macro variable (and not just inserted the macro variable without quotes)
... View more