午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

EXCEL VBA 批量創(chuàng)建多層文件夾/批處理文件批量創(chuàng)建文件夾

 冷茶視界 2023-11-15 發(fā)布于江蘇
您可以通過以下方式支持我:1、關(guān)注、點贊、留言、分享、打賞;2、點擊感興趣的廣告、購買我的安利微店產(chǎn)品;3、添加我的合谷醫(yī)療企業(yè)微信,謝謝!

☆本期內(nèi)容概要☆

  • DOS命令創(chuàng)建文件夾

  • 批處理文件.bat

  • VBA代碼創(chuàng)建文件夾

大家好,我是冷水泡茶,大家在工作中有沒有遇到過這種情況,比如,申報一個政府項目、申請一個財政專項資金什么的,需要報送很多材料,要裝訂成冊,還要掃描成電子檔,并且要按照要求存放在不同的文件夾里,以方便審核。

我這么問,那是因為我自己碰到過這樣的事。要求把跟客戶簽訂的合同掃描成圖片,每個單位放在以這個單位命名或者是數(shù)字、合同號碼命名的文件夾里,我這有一例子:

我以前是怎么做的呢?

要新建目錄的數(shù)量很多,手工一個一個的來建也不是不可以,只是有點不符合我“表哥”的身份哪,這事是萬萬不能這樣干的。

這里主要是創(chuàng)建這一串以數(shù)字命名的文件夾,上級文件夾不多,可以手工創(chuàng)建。

我們需要用到一個DOS命令“MD”--創(chuàng)建文件夾,DOS是早期的電腦系統(tǒng),在現(xiàn)在的Windows系統(tǒng)中,還有它的蹤跡,那就是命令提示符:

MD命令:MD 文件夾名,在當前目錄下創(chuàng)建文件夾

當然,我們今天不是要用這個命令提示符,我們要用的是一個叫“批處理”的方法,是一個可以用記事本編輯的文件,后綴名為“.bat“,它可以執(zhí)行一系列的DOS命令。

我在一張EXCEL表中,把要創(chuàng)建的文件夾的命令行做成一個字符串,“MD”+空格+完整文件夾路徑,我們可以用公式給它拼接出來:

數(shù)據(jù)處理好以后,把G列的命令文本復制到一個記事本里,保存關(guān)閉,再把它的擴展名改為“.bat”,雙擊執(zhí)行,大功告成!

但是,可能有人就要問了,我就是想用VBA,有沒有方法呢?這個當然可以有,代碼如下:

Private Sub CmdMakeDirectory_Click()    Dim fileSys As Object    Dim arr()    Dim lastRow As Integer    Dim folderPath As String    Dim folderParts() As String    Set fileSys = CreateObject("scripting.filesystemobject")    lastRow = UsedRange.Rows.Count    arr = Range(Cells(2, 8), Cells(lastRow, 8)).Value    For i = 1 To UBound(arr, 1)        If arr(i, 1) <> "" Then            folderParts = Split(arr(i, 1), "\")            For j = LBound(folderParts) To UBound(folderParts)                If j = LBound(folderParts) Then                    folderPath = folderParts(j)                Else                    folderPath = folderPath & "\" & folderParts(j)                End If                If Not fileSys.FolderExists(folderPath) Then                    fileSys.CreateFolder folderPath                End If            Next        End If    Next    MsgBox "文件夾創(chuàng)建成功!"End Sub

代碼解析:

1、把要創(chuàng)建的目錄字段裝入數(shù)組arr,這里第8列是要創(chuàng)建的目錄,根據(jù)實際需要修改。

2、循環(huán)數(shù)組,把數(shù)組元素中各級目錄分列存入數(shù)組folderParts。

3、循環(huán)folderParts,逐級檢查目錄是否存在,不存在則創(chuàng)建。

這里重點關(guān)注一下構(gòu)建逐級目錄的代碼:

If j = LBound(folderParts) Then    folderPath = folderParts(j)Else    folderPath = folderPath & "\" & folderParts(j)End If

目錄的結(jié)尾不能有“\”,所以當目前是根目錄的時候,也就是第一級,它應該是folderPath = folderParts(j),再下級目錄則為folderPath & "\" & folderParts(j)。

    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多