2015-01-12 3 views
0

데이터 세트의 내용을 Excel 시트 세트로 Excel 시트 세트로 내보내려고합니다. 그러나 5 개의 데이터 세트에 대해 5 번 코드를 작성하고 있습니다.엑셀 태그 세트로 엑셀로 내보내기.

라이브러리에서 변수 목록을 데이터 집합 목록에 연결하는 매크로를 작성하여 proc 내용을 n 번 작성해야 할 필요가 없습니다.

ods tagsets.excelxp file="c:\ECT2013_Mappning1.xls" style=statistical 

     options(skip_space='3,2,0,0,1' sheet_interval='none' sheet_name='Datasets'  
suppress_bylines='no'); 

proc datasets library=work; quit;run; 
ods tagsets.excelxp options(skip_space='3,2,0,0,1' sheet_interval='none'  
sheet_name='Behtid' suppress_bylines='no'); 

Proc contents data=behtid varnum;run; 
ods tagsets.excelxp options(skip_space='3,2,0,0,1' sheet_interval='none' 
sheet_name='Biverk' suppress_bylines='no'); 

Proc contents data=biverk varnum;run; 
ods tagsets.excelxp options(skip_space='3,2,0,0,1' sheet_interval='none' 
sheet_name='Dosering' suppress_bylines='no'); 

ods tagsets.excelxp close; 

나는 자동으로 데이터 집합을 연결하고 라이브러리에서 사용할 수있는 데이터 세트의 수 PROC의 내용으로 엑셀 tagsets을 수행하는 매크로를 작성하려면 :

내가 쓴 기본적인 코드는 다음과 같다. 어떻게하면됩니까?

+0

당신이 매크로를 작성하는 방법을 알고 계십니까 수행 및/또는 방법 SAS 매크로를 사용할 수 있습니까? – Joe

+0

대신 SASHELP.VCOLUMN 테이블을 사용 해본 적이 있습니까? 그런 다음 ODS TAGSETS By 옵션 중 일부를 사용하여 매크로를 만들지 않고 시트의 이름을 자동으로 지정할 수 있습니다. – Reeza

답변

0

매크로는 통합 문서 경로를 사용하거나 사용하지 않고 호출 가능해야하므로 통합 문서 경로는 선택 항목이어야합니다. Sas 매크로는 두 가지 유형의 매개 변수를 알고 있습니다. 위치 필수 (여기에는 시트에 사용됨)와 선택적 이름 (여기에는 통합 문서 용)이 있습니다.

%macro excelOds(sheet, workBook=_same_); 
    ods tagsets.excelxp 
     options(sheet_name="&sheet." 
       skip_space='3,2,0,0,1' sheet_interval='none' suppress_bylines='no') 
     %if &workBook. NE _same_ %then; 
      &excelOds file="&workBook." 
     %end; 
    ; %* Do not remove this semicolon: it closes the ods statement; 
%mend; 

우리는 선택적 매개 변수를 포함 처음, 나중에 우리가하지

%excelOds(Datasets,workBook=c:\ECT2013_Mappning1.xls); 
proc datasets library=work; quit;run; 

%excelOds(Behtid); 
Proc contents data=behtid varnum;run; 

** and so further **; 

ods tagsets.excelxp close; 
관련 문제