天天看點

VBA中利用Dir周遊檔案

    選擇系統分類的時候竟然找不到和VBA相關的,甚至連Office相關的項也沒有,是不是因為這些方面太低級了很丢人哪。

    下面簡單說一下在用VBA開發的時候如何周遊某一目錄中的檔案,進而對其進行處理。

    現實應用中,常常會遇到這樣的情況,某個目錄下有大量的Excel資料檔案,現在需要對這些檔案中的資料進行批量處理。現在的問題就來了,由于每次生成的資料檔案名稱都不固定,是以無法在程式中直接寫死。其實通過VBA内置的Dir函數可以解決這一問題。

Sub DirTest() 

        Do 

                xlsName = Dir("D:\ExcelTest\*.xls") 

                If xlsName = "" Then 

                        Exit Do 

                End If 

                Workbooks.Open Filename:="D:\ExcelTest\" & xlsName 

                Workbooks(xlsName).Close savechanges:=False 

                Kill "D:\ExcelTest\" & xlsName 

        Loop 

End Sub

    此處是假設需要處理的資料檔案全部在“D:\ExcelTest\”目錄下,實際應用中可根據情況更改。以下對此過程作一些簡要說明。

    1.先插入一個過程,并且加入Do……Loop循環,進而實作對所有的檔案進行處理

    2.定義一個變量xlsName(名稱可根據自己愛好随便取,但建議是好記的名稱,由于VBA可以不申明,直接使用,是以我這裡偷懶,把定義的語句省略掉了,預設情況下執行是沒有任何問題的。如果在VBA環境中設定了強制申明,則需要添加定義變量的語句)。

    3.通過一個If……End If來判斷,取得的檔案名是否是空(如果為空,則說明檔案處理完畢),如果為空,則退出循環。

    4.打開取得的檔案名對應的檔案

    5.對資料進行相應處理(這裡并沒有寫這些語句,實際使用時可根據自己的情況添加資料處理的語句)

    6.關閉剛打開的檔案

    7.删除已經處理過資料的檔案(如果這些資料還有他用,建議将其備份,在打開檔案後,使用SaveAS另存為也可。

    8.過程結束。

    如何檢視Dir()函數更加詳細的說明,可直接在VBA編輯器中輸入Dir,右鍵點選Dir,然後在快捷菜單中選擇“定義”,在打開的“對象浏覽器”中,右鍵單擊Dir,然後選擇“幫助”,即可檢視Dir的詳細幫助及示例。

     本文轉自windyli 51CTO部落格,原文連結:http://blog.51cto.com/windyli/280988,如需轉載請自行聯系原作者

繼續閱讀