--- %%NOBANNER%% -->
/*-------------------<---Start of Description-->---------------------\
| Save the excel sheet, if a path and file name is provided, then the|
| function save the current excel spread sheet to the directory using|
| the filename provided; otherwise it save the current spread sheet |
| to the excel default directory using the default name. |
|---------------------<---End of Description-->----------------------|
|--------------------------------------------------------------------|
|------------<---Start of Files or Arguments Needed-->---------------|
| Argument: |
| filepath: A correct path with a excel filename plus excel |
| extension; |
| excelref: the excel reference; not necessary; default is |
| "excelsys"; |
|-------------<---End of Files or Arguments Needed-->----------------|
|--------------------------------------------------------------------|
|------------------<---Start of Files Created-->---------------------|
| Example: %excelsave(c:\temp\temp.xls); |
| Usage: %excelsave(filepath, excelref); |
\-------------------<---End of Files Created-->---------------------*/
%macro excelsave/parmbuff;
/*--------------------------------------------\
| Author: Duo Zhou; |
| Created: 6-15-2001 10:54pm; |
| Modified: 1-15-2002 8:47pm; |
| Purpose: Save the excel spread sheet; |
\--------------------------------------------*/
%local fref wsid rc num fileref;
%let num=1;
%let fileref=%qscan(&syspbuff,&num,%str((),""''));
%let fref=; %let wsid=0;
%if %words(&syspbuff, dlm=%quote(,()))>1 %then %let fref=%qscan(&syspbuff,-1,%str(,()''""= ));
%else %let fref=excelsys;
%if (&fref ne ) %then %let wsid=%sysfunc(fopen(&fref,o,132,e));
%if &wsid %then %do;
%let rc=%sysfunc(fclose(&wsid));
DATA _NULL_;
FILE &fref;
%if &fileref ne %then %do;
%if (%substr(%upcase(&fileref),%eval(%length(&fileref)-3),4) ne .XLS) %then
%let fileref=&fileref..xls;
%put --> Note: File will be saved as "&fileref". ;
str='[SAVE.AS("'||trim(left("&fileref"))||'")]';
PUT str;
%end;
%else %do;
PUT '[SAVE]';
%end;
RUN;
%end;
%else %put ==> Alert! Incorrect window reference "&fref", or window "&fref" isn%str(%')t open.;
%mend excelsave;