全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
5782 10
2014-10-24
悬赏 15 个论坛币 已解决
%macro import(file);
proc import datafile="d:\sas\141024\&file.xlsx"
                        out=&file
                        dbms=excel2007 replace;
                        getnames=yes;
run;
%mend import(file);
%import(balsheet);
%import(ind.roa);
%import(locat);
%import(nation);
run;

运行后提示  WARNING: 已忽略宏定义“IMPORT”的 %MEND 语句中的无关文本。
ERROR: 无法打开文件“d:\sas\141024\balsheetxlsx.XLS”。该文件不存在或已被另一用户打开。或者您需要相应权限才能查看其数据。

请高手解答,在导入数据是并没有同时打开和使用Excel
请各位大神告知小弟 该如何修改这段程序呢?

最佳答案

sniperhgy 查看完整内容

楼主你好,关于楼主写的宏,我有几点建议: 1. 楼主注意到log里面的那个warning了吗? 这个是由于%mend import(file);造成的,如果改成%mend import;,就可以了,至于为什么这么改,请参考如何定义一个宏的解说,在www.sas.com里面找 2.我在三楼里面特意把&file后面应该加两个"."的事情强调了一下,为何楼主还是写一个“.”?请看那个ERROR,ERROR: 无法打开文件“d:\sas\141024\balsheetxlsx.XLS”,楼主的文件难道不是bals ...
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-10-24 08:07:33
凡尘梦1990 发表于 2014-10-24 15:48
代码已经写在第一个帖子了。。我把log运行记录也贴出来

89   %macro import(file);
楼主你好,关于楼主写的宏,我有几点建议:
1. 楼主注意到log里面的那个warning了吗? 这个是由于%mend import(file);造成的,如果改成%mend import;,就可以了,至于为什么这么改,请参考如何定义一个宏的解说,在www.sas.com里面找

2.我在三楼里面特意把&file后面应该加两个"."的事情强调了一下,为何楼主还是写一个“.”?请看那个ERROR,ERROR: 无法打开文件“d:\sas\141024\balsheetxlsx.XLS”,楼主的文件难道不是balsheet.xlsx吗?为何会变成balsheetxlsx.xls?那就是因为少写了一个“.”造成的。

请楼主注意别人回复的细节,再试试看,如果不行,咱们继续讨论。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-10-24 08:08:05
补充一下,我用的是sas9.3
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-10-24 10:26:59
请将第一句话改为 :
复制代码

请注意,那个&file后面是两个点,还有一点,如果楼主用的是64位的SAS9.3,外加32位的excel,建议将dbms改成excelcs,否则容易出错。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-10-24 15:19:48
按楼上说的,还是无法运行。我想是不是因为 sas宏变量只能对sas中已存储的变量定义和调用呢?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-10-24 15:31:54
凡尘梦1990 发表于 2014-10-24 15:19
按楼上说的,还是无法运行。我想是不是因为 sas宏变量只能对sas中已存储的变量定义和调用呢?
楼主你好,说无法执行的话,请将自己写的整个代码以及错误提示贴出来(最好就是将整个log的内容贴出),大家可以一块想办法,不要只说一句话,这样别人没法帮你的。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群