2016-10-28 23 views
1

次のコードを使用して結果をExcelファイルとしてエクスポートしました。ただし、毎回、ファイルの種類で結果が出力されます。私は手動でそれらのタイプを変更する必要があります。 &from.&&memname&iの後に.xlsを入力しようとしましたが、SASはこの形式を認識できません。私は考えられる理由が.xだと仮定しますが、この問題を解決する方法はありません。SAS-マクロを使用して結果をExcelとして出力

%macro tradetime(sourcelib=,from=,going=,dir=); 
proc sql noprint; /*read datasets in a library*/ 
    create table mytables as 
    select * 
    from dictionary.tables 
    where libname = &sourcelib 
    order by memname ; 

    select count(memname) 
    into:obs 
    from mytables; 

    %let obs=&obs.; 

    select memname 
    into : memname1-:memname&obs. 
    from mytables; 
quit; 

    %do i=1 %to &obs.; 

    ods tagsets.excelxp file= "&Dir\&&memname&i" /*output the results to target file*/ 
    style=XLsansPrinter; 
    ods listing close; 
    ods results off; 
    proc univariate data= &from.&&memname&i; 
    var time_l_ ; 
    run; 
    quit; 

    ods tagsets.excelxp close; 
    ods listing ; 
    ods results on; 
%end; 
%mend; 

%tradetime(sourcelib='AXP',from=AXP.,going=AXP.,dir=D:\Data\description); 

答えて

2

マクロ変数ターミネータから問題が発生している可能性があります。試してみる:

&Dir\&&memname&i.xls 

これは動作しません。ドットはマクロ変数ターミネータです.2つのマクロを使用しているため、実際には2つ以上必要です。&[i].は1つのマクロ変数で、次に&[memname&i.].が第2のマクロ変数です(最初の&は消えます)。 )。したがって、必要なのは:

&Dir\&&memname&i...xls 

.xls拡張子を作成します。

tagsets.excelxpではありません。ネイティブエクセルファイルを作成します。 Excelで読み込み可能なxmlファイルを作成します。あなたがそれらの上に.xlsを置くと、excelはあなたにちょっとした問題を与えます(いくつかのケースでは、それはあなたの設定とExcelのバージョンに応じて、いくつかは拒否されます)。 ファイルをサポートし、SAS 9.4 TS1M1以降を使用する場合は、ods excelを使用することをお勧めします。

関連する問題