data _null_;
file myxls;
put '[app.activate("microsoft excel - book1")]';
put '[workbook.activate("Sheet1")]';
put '[select("r3c2:r7c3")]';
put '[send.keys("^1", true)]'
'[send.keys("a", true)]'
'[send.keys("%m", true)]'
'[send.keys("{RETURN}", true)]';
put '[alignment(7,1,2,0)]';
put 'DDE is not funny at all!';
run;
quit;
[/code:12t57irm]
献丑了!实在找不到MERGE CELLS的MACRO函数,只好用SEND.KEYS()方法,但不是每次都行。应该有更牢靠的办法。
也可以先在EXCEL录一个宏(with name macro1)专门合并当前选中的单元格,然后再从SAS里调这个宏。
[code:12t57irm]
options noxwait noxsync;
data _null_;
rc = system('start excel');
rc = sleep(2);
run;
filename myxls DDE 'EXCEL|System' notab;
data _null_;
file myxls;
put '[close()]';
put '[open("whatever.xls")]';
put '[workbook.activate("Sheet1")]';
put '[select("r3c2:r7c3")]';
put '[run("macro1")]';
put '[alignment(7,1,2,0)]';
put 'DDE is not funny at all!';
run;
[/code:12t57irm]