03-28-2017 11:56 AM
In using EG (v 7.13) there are many times I want to copy a dataset and paste it in Excel to do some ad-hoc analysis that is easier that way. When I do this I always want to include the headers but if I use the copy shortcut (Ctrl+C) it defaults to just copying the data without the headers included. Is there an option I am not aware of to change the default to copy with headers? I know I can right click and do it that way but I would prefer to use the shortcut as it is what I do instinctively.
03-28-2017 12:08 PM
No, there isn't a keyboard shortcut for "Copy with Headers" -- it's a right-click action.
But you could use a tool like AutoHotkey to map your own shortcuts (for EG or for any Windows application).
03-28-2017 02:51 PM
I know what it's like to have a customary way of doing things, and ordinarily I wouldn't interfere, but I would REALLY REALLY like to suggest you give the "Send To"..."Microsoft Excel" functionality a try. I wouldn't do it any other way; the headings come out right, Excel doesn't try to interpret any "funky" data that comes across, dates and times are good.
I'll offer you DOUBLE your money back! If you don't like it, I'll refund you TWO TIMES what you paid for this tip!!
03-28-2017 09:05 PM
If you happen to have 'full' local SAS with the 'old text editor' you can do the following. Suppose you have this code in your editor data class; set sashelp.class; run; Highlight either sashelp.class or class and type 'xlsh' on the clean command line. Excel will open with the the sasdatset imported. ==> xlsh You can also put the command macro on a function key. (highlight - hit key fyi macro xls for last dataset) SAS removed this functionality in all editors after the old text editor. The command macro has to be in your autocall library. I also have shift-rmb to list 40 obs from last dataset with obs number. and many more. Much faster that SAS viewer and you can cut and paste. and excel will open with the SAS dataset importted. %macro xlsh /cmd ; store;note;notesubmit '%xlsha;'; run; %mend xlsh; %macro xlsha/cmd; filename clp clipbrd ; data _null_; infile clp; input; put _infile_; call symputx('argx',_infile_); run; %let __tmp=%sysfunc(pathname(work))\myxls.xlsx; data _null_; fname="tempfile"; rc=filename(fname, "&__tmp"); put rc=; if rc = 0 and fexist(fname) then rc=fdelete(fname); rc=filename(fname); run; libname __xls excel "&__tmp"; data __xls.%scan(__&argx,1,%str(.)); set &argx.; run;quit; libname __xls clear; data _null_;z=sleep(1);run;quit; options noxwait noxsync; /* Open Excel */ x "'C:\Program Files\Microsoft Office\OFFICE14\excel.exe' &__tmp"; run;quit; %mend xlsha;