全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
4257 3
2015-01-13
D:\temp\目录下有 上百个 excel 文件,想利用宏读入各个文件的内容到一个表中,excel的格式都一样

%macro daoru(name) ;                                
        PROC IMPORT OUT= aa                        
            DATAFILE= "D:\temp\&name..xls"            
                        DBMS=excel2010 REPLACE;
                        getnames=yes;
        RUN;
        PROC APPEND BASE=www DATA=aa force  ;
        RUN ;
%mend daoru ;

data temp;
        infile "D:\temp\all.TXT" delimiter = ')' MISSOVER DSD lrecl=32767 ;;
        input str : $100.;
                str2 = trim(str) || ')' ;
                Call Symputx(str3,str2) ;
                call execute('%daoru('||scan(str2,1,')')||');') ;
run;


但是提示 错str=116.431,39.880343,长青园(餐饮 str2=116.431,39.880343,长青园(餐饮) str3=. _ERROR_=1 _N_=6
str2的值没有传递到 宏中,请高手指点下

二维码

扫码加我 拉你入群

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

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

全部回复
2015-1-13 13:56:35
复制代码
二维码

扫码加我 拉你入群

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

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

2015-1-13 14:41:13
多谢多谢,不过运行后,提示:

743  data _null_;
744  infile "&path.fname.txt";
745  input filename & $100.;
746  call execute('%importxls(' || trim(filename) || ',' || _n_ || ')');
747  run;

NOTE: 数值已转换为字符值,位置:(行:列)。
      746:56
NOTE: INFILE "D:\temp\fname.txt" 是:
      文件名=D:\temp\fname.txt,
      RECFM=V,LRECL=256,文件大小(字节)=249,
      上次修改时间=2015年07月13日 14时30分50秒,
      创建时间=2015年07月13日 14时30分50秒

ERROR: 找到的位置参数多于定义的个数。
ERROR: 找到的位置参数多于定义的个数。
ERROR: 找到的位置参数多于定义的个数。
ERROR: 找到的位置参数多于定义的个数。
ERROR: 找到的位置参数多于定义的个数。
ERROR: 找到的位置参数多于定义的个数。
NOTE: 从 INFILE "D:\temp\fname.txt" 中读取了 6 条记录。
      最小记录长度是 34。
二维码

扫码加我 拉你入群

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

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

2015-1-13 15:39:19
excel是中文名? 你的sas版本支持中文变量名吧?
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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