BookmarkSubscribeRSS Feed
mnew
Calcite | Level 5

Hi Experts:

I’m trying to learn macro. I have an Excel2010 file with multiple worksheets and their names all end with “_rpt”. For example the first tab’s name is Sales_rpt and the second is Budget_rpt.  I want to write a macro that makes it easier for me to create SAS dataset from specified sheets.

Here is my failed attempt to create a SAS dataset called Sales by using a data step reading in the Sales_rpt worksheet.

What did I do wrong?

Thank you!

Libname rpt ‘….xlsx';

%macro getdata(DSN);

Data work.&DSN;

      set rpt."&DSN_rpt$"n;

run;

%mend;

%getdata(Sales)

2 REPLIES 2
Linlin
Lapis Lazuli | Level 10

Hi,

try

Libname rpt ‘….xlsx';

%macro getdata(DSN);

Data work.&DSN;

      set rpt."&DSN._rpt$"n;

run;

%mend;

%getdata(Sales)

/* you need a . after  macro variable &dsn. */


Linlin

mnew
Calcite | Level 5

Magic! Thank you so much!

sas-innovate-wordmark-2025-midnight.png

Register Today!

Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.


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
  • 2 replies
  • 1006 views
  • 1 like
  • 2 in conversation