Rishi:
The first step is to get the record count into a macro variable. The easiest way is an SQL statement.
proc sql noprint;
select count(*) into :nobs
from dsname;
quit;
Next step would be to determine the number of files to create:
data temp;
count=int(&nobs/65000) + 1;
call symputx('count',count);
run;
Macro variable &count contains the number of tables to create. You can use this in a macro do loop.
%macro xlcreate;
%do i=1 %to &count;
data temp;
set dsname;
obs=_n_;
if ((&i-1)*65000 + 1) le obs le &i*65000;
run;
/* use proc export, tagsets.excelxp or some other method to create an excel file, Use the &i macro variable to create file name versions */
proc export data=temp ...
%end;
%mend;
... View more