已有一个Excel表格,用VBA批量新建文件夹

已有一组Excel表格数据,使用VBA快速批量建文件夹

不知道标题怎么写。
已经有了这样一组数据
在这里插入图片描述



然后需要根据这两组数据新建文件夹,代码如下

Sub 建文件夹()
    Dim i As Integer '用于下方数组
    Dim Arr1(), Arr2() '定义一个数组,不能定义大小和类型
    Dim Fso, Fld    '定义文件路径
    Dim rowmax  '找到数据的行数
    
    start_time = Timer  '计时开始
    
'数据的行数
    rowmax = [A1048576].End(xlUp).Row
'把两列数据分别赋值给两个个数组
    Arr1 = Range("A2:A" & rowmax)
    Arr2 = Range("B2:B" & rowmax)
'选择建文件夹的路径
    Set Fso = CreateObject("Scripting.FileSystemObject")
    Set Fld = Fso.getfolder(CreateObject("Shell.Application").BrowseForFolder(0, "请选择需要创建文件夹的根目录", 0, "").Self.Path & "")

'开始批量新建文件夹
    For i = 1 To UBound(Arr1)
        FolderName = Arr1(i, 1) & " " & Arr2(i, 1)
        If Dir(Fld & "\" & FolderName, vbDirectory) = vbNullString Then  '如果文件夹不存在,则新建
        VBA.MkDir (Fld & "\" & FolderName)
        End If
    Next    
'建好了

    cost_time = Timer - start_time  '计时结束,计算用时
    Range("D6") = cost_time
End Sub 

完成
在这里插入图片描述
在这里插入图片描述

  • 202003072230 更新
    如果是需要建二级目录,在第一次for循环里再加一个for循环即可,如下图所示。
Sub 建文件夹()
    Dim i As Integer '用于下方数组
    Dim Arr1(), Arr2() '定义一个数组,不能定义大小和类型
    Dim Fso, Fld    '定义文件路径
    Dim rowmax  '找到数据的行数
    
    start_time = Timer  '计时开始
    
'数据的行数
    rowmax = [A1048576].End(xlUp).Row
'把两列数据分别赋值给两个个数组
    Arr1 = Range("A2:A" & rowmax)
    Arr2 = Range("B2:B" & rowmax)
'选择建文件夹的路径
    Set Fso = CreateObject("Scripting.FileSystemObject")
    Set Fld = Fso.getfolder(CreateObject("Shell.Application").BrowseForFolder(0, "请选择需要创建文件夹的根目录", 0, "").Self.Path & "")

'开始批量新建文件夹
    For i = 1 To UBound(Arr1)
        FolderName = Arr1(i, 1) & " " & Arr2(i, 1)
        If Dir(Fld & "\" & FolderName, vbDirectory) = vbNullString Then  '如果文件夹不存在,则新建
        VBA.MkDir (Fld & "\" & FolderName)	' 新文件建好了
        ' 见上方的一行代码,此时,已经建好了一个文件夹。文件夹的全路径是:Fld & "\" & FolderName
        ' 如果需要建二级文件夹的话,在已经建好的文件夹下继续新建文件夹就行了
'''''''''''''''''''''''''''''以下''''''''''''''''''''''''''''''''''''''''''''		
		' 下方For循环模拟建二级文件夹
        For j = 0 To 10
            VBA.MkDir (Fld & "\" & FolderName & "\" & "测试文件" & j)
        Next
'''''''''''''''''''''''''''''以上''''''''''''''''''''''''''''''''''''''''''''
        End If
    Next
'建好了
    cost_time = Timer - start_time  '计时结束,计算用时
    Range("D6") = cost_time
End Sub
  • 这里操作
'''''''''''''''''''''''''''''以下''''''''''''''''''''''''''''''''''''''''''''		
		' 下方For循环模拟建二级文件夹
        For j = 0 To 10
            VBA.MkDir (Fld & "\" & FolderName & "\" & "测试文件" & j)
        Next
'''''''''''''''''''''''''''''以上''''''''''''''''''''''''''''''''''''''''''''

最后效果如下图所示
一级目录
在这里插入图片描述
二级目录
在这里插入图片描述

  • 7
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值