SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 819|回复: 1
打印 上一主题 下一主题

如何将SAS的DATA导入EXCEL合并单元格

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2008-12-19 01:06:49 | 只看该作者

如何将SAS的DATA导入EXCEL合并单元格

一个问题:用DDE怎么把SAS的数据导入EXCEL 合并单元格中
实在解决不了,请帮忙
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2008-12-19 07:45:13 | 只看该作者

Re: 如何将SAS的DATA导入EXCEL合并单元格

[code:12t57irm]
/*
reference: http://www2.sas.com/proceedings/sugi30/045-30.pdf
*/
options noxwait noxsync;
data _null_;
        rc = system('start excel');
        rc = sleep(2);
run;

filename myxls DDE 'EXCEL|System' notab;

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]

这样不会出错,但是每次打开含有宏的表EXCEL都会亲切的问候您吃了吗?当然您也可以在Tools->Options->Security->Macro Security里关掉这个选项,但这样又少了很多事情可做,失业机会随之大增。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-2-5 05:20 , Processed in 0.066525 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表