BookmarkSubscribeRSS Feed
daradanye
Obsidian | Level 7

Hello,

 

I have a number of excel files named as file_a, file_b  until file_h.  I'd like to use a macro do loop to import the files.

 

Following the code in this link

I write the following code.  I also tried to add % before proc import command and it does not work either.  That would be great if someone can help here.

 

Thanks.

 


%let list = a b c d e f g h;
%local i next_name;
%let i=1;
%do %while (%scan(&list, &i) ne );
   %let next_name = %scan(&list, &i);
 proc import out=jobpost&next_name
	datafile="H:\bdata\file_&next_name..csv"
	dbms='' replace;
	run;
   %let i = %eval(&i + 1);
%end;
1 REPLY 1
Kurt_Bremser
Super User

A %DO must be part of a macro, you cannot use it in "open code".

If the csv files (which are NOT Excel files) have the same structure, you can read them in one DATA step.

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 1 reply
  • 616 views
  • 0 likes
  • 2 in conversation