SAS读取数据时隐藏excel

SAS读取数据时隐藏excel,excel,sas,vba,Excel,Sas,Vba,我正在使用一段众所周知的代码将excel工作簿读入SAS。从Excel调用SAS代码,然后继续打开所需的SAS工作簿,并将数据读入SAS数据集中。我遇到的问题是,当代码被读入时,我们可以看到SAS如何在数据集中运行 有没有办法隐藏这一点?我意识到excel工作手册需要打开,但我更希望它保持最小化,这样我就不会看到工作手册上所有的跳跃。此外,如果在读入过程中单击任意位置,则该过程将失败。我不确定隐藏工作手册是否也能解决这个问题 使用SAS 9.3和Excel 2010这对我来说很有效,它是app.

我正在使用一段众所周知的代码将excel工作簿读入SAS。从Excel调用SAS代码,然后继续打开所需的SAS工作簿,并将数据读入SAS数据集中。我遇到的问题是,当代码被读入时,我们可以看到SAS如何在数据集中运行


有没有办法隐藏这一点?我意识到excel工作手册需要打开,但我更希望它保持最小化,这样我就不会看到工作手册上所有的跳跃。此外,如果在读入过程中单击任意位置,则该过程将失败。我不确定隐藏工作手册是否也能解决这个问题

使用SAS 9.3和Excel 2010这对我来说很有效,它是app.minimize(不是apps.minimize())

但是,您仍然无法使用计算机

options noxwait noxsync;

x '"C:\Program Files (x86)\Microsoft Office\Office14\EXCEL.EXE"';

data _null_;
z=sleep(1);
run;

filename cmds dde 'excel|system';

data _null_;
file cmds;
put '[open("C:\_LOCALdata\air.xlsx")]';
x=sleep(1);
run;

data _null_;
file cmds;
put "[app.minimize()]";
x=sleep(2);
run;

听起来你在用DDE。如果您可以发布代码,这会有所帮助。自从DDE流行以来,SAS已经有了很多改进,因此您现在可以使用PROC IMPORT来阅读代码,但是在不了解更多细节的情况下,很难说清楚。具体来说,是读取整个选项卡还是选择字段。读取范围是动态的还是固定的?是的,我正在使用DDE。我有一本excel手册,其中有大量的选项卡,这些选项卡的数据不断变化,因此我需要非常灵活的代码,可以贯穿整本书。我的代码基于著名的xl2sas宏。您现在可以将libref指向XLSX文件,并将其视为SAS库。使用过程内容,过程副本等。谢谢你的注意,我会调查的!如果有人有任何想法的话,我仍然有兴趣在当前代码中最小化excel窗口?application.ScreenUpdate和application.interactive可以在excel中设置为FALSE(可以通过VBA访问它们,也可以在DDE中访问它们?),例如:当我测试这样做时,当最小化excel工作簿时,DDE停止向该工作簿发送DDE命令。这可能是真的,但它确实最小化了窗口。这个问题的答案可能是,它不能按照OP想要的方式进行。老实说,我不认为这有什么意义。不管你看到与否,它都在占用你的电脑。迁移到libname或Proc导入方法。或者迁移到咖啡馆吃点心。是的,或者在你离开午餐或一天之前做的事情。似乎所有的最小化和屏幕更新都会停止代码