通過(guò)vba將sas數(shù)據(jù)集自由轉(zhuǎn)換成excel
最近看了朋友寫的一篇sas數(shù)據(jù)集轉(zhuǎn)換成excel的文章,內(nèi)容非常全面,不僅無(wú)私展示了自己的程序,還記錄了編程過(guò)程中遇到的一些問(wèn)題。然后我也順便百度甚至google了關(guān)于此的更多內(nèi)容,感覺大同小異。
sas數(shù)據(jù)集轉(zhuǎn)成成exce的方法基本分為兩種,第一種是使用sas程序,這也是絕大多數(shù)人使用的方法,程序包括:ods excel、ods tagsets.excelxp和proc export。第二種是使用vba程序,非常小眾,通過(guò)ado鏈接sas數(shù)據(jù)庫(kù),還包含了sql程序。
在醫(yī)藥行業(yè),如果我們輸出需要遞交FDA的excel,姑且稱為正式的excel,那么一定要使用sas。這里的正式不僅指的是內(nèi)容,還有嚴(yán)格的格式控制,比如title、footnote等等。比如TLF中的listing,很有可能就要制作成excel。
那么非正式的excel呢?換個(gè)角度來(lái)說(shuō),如果把sas數(shù)據(jù)集轉(zhuǎn)換成excel,并且這些excel我們不用遞交,僅僅用來(lái)查詢、篩選數(shù)據(jù),也不用在乎他的格式,那就可以稱得上是非正式excel。
這個(gè)時(shí)候我覺得用vba可能會(huì)更便捷,因?yàn)橥耆恍枰谌杰浖?,電腦自帶excel即可。
在我寫的程序中,
比如我點(diǎn)擊此按鈕,輸入路徑,就可以看到此路徑下的所有數(shù)據(jù)集名稱。



比如我點(diǎn)擊此按鈕,再輸入一遍相同路徑進(jìn)行驗(yàn)證,如果路徑相同則讀取A列值,在此excel中把數(shù)據(jù)集名稱為A列的值輸出成各個(gè)sheet。



如果有對(duì)sas數(shù)據(jù)集輸出成excel熟悉的朋友應(yīng)該知道,這簡(jiǎn)單幾步,省略了sas很多的步驟,你可以自由控制是batch所有數(shù)據(jù)集,還是自己想要的數(shù)據(jù)集轉(zhuǎn)換成excel。并且沒(méi)有內(nèi)存不夠只能用wps打開的問(wèn)題。
在編程過(guò)程中,我遇到了以下問(wèn)題:
format的問(wèn)題,比如日期格式,解決。
多個(gè)數(shù)據(jù)集讀入的問(wèn)題,解決。
sql不支持問(wèn)題,解決。
數(shù)據(jù)集為空程序錯(cuò)誤的問(wèn)題,解決。
。。。
希望能遇到和我一樣在通過(guò)自己查找資料的基礎(chǔ)上,能產(chǎn)生自己的問(wèn)題并有自己的心得體會(huì)能和我進(jìn)行交流,共同進(jìn)步的同僚,所以不直接提供代碼,但非常樂(lè)意回答私信問(wèn)題。
有興趣可移步wx訂閱: CDISC_SAS