贊贊小屋

VBA如何自動建立資料夾(下)

上一節分享VBA如何跨越Excel、直接在電腦建立檔案資料夾,並且具體介紹MkDir指令。當時範例只簡單建立一個資料夾,這一節將以此為基礎,進一步介紹VBA如何一次建立多個會計期間、同時每個期間有分門別類新增好的資料夾,具體如下:

一、延續上一節的範例,想以VBA程式建立17Q2的結帳資料夾。

想以VBA程式建立17Q2的結帳資料夾

二、編寫「資料夾17Q2」程序:

設置0到2的循環(「For i = 0 To 2……Next i」),於循環內定義月份及路徑變數(「Dim Month, Path As String」),設定月份為「Month = 1704 + i」、然後再設定路徑為「Path = “C:\Users\b88104069-Air\Desktop\2017\Q2\” & CStr(Month)」,其中「CStr」為VBA中將數值轉換成字串的函數,功用類似於Excel中的TEXT函數,最後,「MkDir Path」是上一節介紹的新增目錄DOS命令。編寫「資料夾17Q2」程序

三、執行「資料夾17Q2」程序,成功新增了「1704」、「1705」、「1706」三個資料夾。

執行「資料夾17Q2」程序

四、接下來想在「1704」月份資料夾中,新增各個項目的結帳子資料夾。

新增各個項目的結帳子資料夾

五、編寫「結帳子資料夾」程序,延用上一節所介紹的語句:「MkDir “C:\Users\b88104069-Air\Desktop\2017\Q2\1704\成本”」,直接在VBA編輯視窗裡複製貼上,依序再增加「固資」、「費用」、「應付」、「應收」等結帳子資料夾。

MkDir "C:\Users\b88104069-Air\Desktop\2017\Q2\1704\成本"

六、執行「結帳子資料夾」程序,幾乎在一瞬間,VBA默默迅速地新增五個資料夾!

結帳子資料夾

七、修練好前面步驟的程式功力,施展組合拳,編寫「批次建立資料夾」程序:

批次建立資料夾

八、執行「批次建立資料夾」程序,幾乎又在一瞬間,VBA又默默迅速地新增十個資料夾!

VBA又默默迅速地新增十個資料夾!

Excel中有個大絶招巨集命令,能將所執行過的操作錄製起來,無限次再次「播放」,其中隱含思惟是,如果有哪些SOP步驟是常常要再來一次,乾脆把它做成「指令懶人包」,一步到位!這一節的範例也是相同思惟,如果每次都要新增月份或季度資料夾、如果每次都要新增那五個結帳資料夾,那麼可否只做一次,接下來讓Excel機器人自動化完成呢。

雖然Excel巨集很方便,然而再怎麼強大,畢竟是「錄製」,某一次個別情況下的操作,想套用在往後所有類似情境,總不排除有出差錯可能,而且重點是,巨集是把操作流程翻譯成VBA程式,只會巨集,不會VBA,翻譯程式出了狀況也不知該如何補正。另外以這一節範例來看,VBA有兩個好處,一是在類似文書環璄編寫程式,重覆設定五個結帳資料夾時,複製再貼上很快,二是只要熟悉了語法架構,可以適用的範圍沒有限制。例如在這裡是批次建立一個季度的完整資料夾,但只要摸清楚了「For Next」、「Cstr」、「MkDir」等用法,進一步是新增一整個年度的資料夾。所以VBA武功秘笈在手,只有想不到,沒有做不到!

本網站所有內容皆受版權保護,网站备案编号:苏ICP备14051307号-1