Hi 
Thanks for the reply. FYI - I am using SAS 9.1.3. 
My solution so far has been to use ...  
http://support.sas.com/kb/36/904.html ...
in order to write the columns of the data across multiple sheets (90 of them) each 
with 255 (ish) columns. I then have a VBA programme that writes these sheets to 
individual manageable excel files. For some reason, I couldn't get the programme 
to work with .xlsx files but it does do.xls files fine. 
However, I still have a problem in that I need to select a specific set of columns 
since I need to repeat this process for the same columns with many more
 observations. 
Thanks for the code SPR but I can't get it to run. I simply changed the library and
member name and choose ds = 200 to select 200 columns at a time:
LIBNAME MyLib 'C:\data_monthly';
data i;
  stock1=10; stock5=20; stock2=30; stock10=40;
run;
%let ds=3;
proc SQL;
  select COUNT(distinct name) as ns into :ns
  from SASHELP.vcolumn 
  where LIBNAME=MyLib and MEMNAME=stocks_sorted;
  %let ns=%TRIM(&ns);
  select name as name into :n1-:n&ns
  from SASHELP.vcolumn 
 where LIBNAME=MyLib and MEMNAME=stocks_sorted;
quit;
%macro a;
%local i is ie;
%do i=1 %to &ns %by &ds; 
  %let is=&i;
  %let ie=%EVAL(&is+&ds-1);
  %if &ie > &ns %then %let ie=&ns;
data r&is;
  set i;
  keep &&n&is--&&n&ie;
run; 
%end;
%mend a;
%a
Thanks in advance - this will be very useful.