我无法让Excel 2010执行SAS中的宏。我从一些SAS表格导出数据到Excel,这很好,当我手动运行VBA宏时,它也会做它应该做的事情,但它不会自动执行。 Excel文件被称为“FIH.xls”,而宏被称为“Opryd”作为Module1。 SAS日志不会出现任何错误,Excel也不会。我已经允许所有的宏在Excel设置中运行。它仍然没有执行。DDE SAS运行VBA代码
options noxwait noxsync;
x '"C:\FIH.xls"';
/* Putting SAS in sleep mode to give Excel the necessary time to open the file */
data _null_; x=sleep(5);
run;
FILENAME excel DDE 'EXCEL|Grp!r5c8:r7c20' notab;
DATA _NULL_;
SET gem.rap_konc_selskab;
FILE excel;
PUT '09'x selskab_rap '09'x gr_vis_start '09'x man_amt '09'x '09'x '09'x rest_2 '09'x ;
RUN;
data _null_;
file excel;
put '[run ("FIH.xls!Opryd")]';
run;
如果VBA代码正常工作,并且您想自动执行该代码,请将代码放在Workbook_Open中:) –
我已经试过了,但是在将数据从SAS导出到Excel之前,excel运行宏。我尝试了在VBA宏中延迟,但这也没有帮助。如何让VBA宏等待执行命令,直到来自SAS的数据位于电子表格中? – NHansen
由于workbook_open将首先触发,所以延迟无效。我不太确定,但数据如何在Excel中完全更新? –