怎么用vba遍历文件夹里的所有文件

怎么用vba遍历文件夹里的所有文件,第1张

遍烂芹历 *** 作,一般运用于提取和写入等的 *** 作,其基本原理和代码都一样,

遍历的方法也有很多种,以团游下我提供一种方法open法,除去红框以内

的代码基塌历销本都是遍历的基础代码,在这个基础上可以做根据实际需要的添加修改

Sub Test()

    Dim MyName, Dic, Did, I, T, F, TT, MyFileName

    T = Time

    Set Dic = CreateObject("Scripting.Dictionary")    '创建一携肢个字典对象

    Set Did = CreateObject("Scripting.Dictionary")

    Dic.Add ("D:\My Documents\"), ""

    I = 0

    Do While I < Dic.Count

        Ke = Dic.keys   '开始遍历字典

        MyName = Dir(Ke(I), vbDirectory)    '查找目录

        Do While MyName <> ""

            If MyName <> "." And MyName <> ".." Then

                If (GetAttr(Ke(I) & MyName) And vbDirectory) = vbDirectory Then    '如果是次级目录

                    Dic.Add (Ke(I) & MyName & "\"), ""  '就往字典中添加这个次级目录名作为一个条目

            培茄    End If

            End If

            MyName = Dir    '继续遍历寻找

        Loop

        I = I + 1

    Loop

    Did.Add ("文件清单"), ""    '以查找D盘My Documents下所有EXCEL文件为例

    For Each Ke In Dic.keys

        MyFileName = Dir(Ke & "*.xls")

        Do While MyFileName <> ""

            Did.Add (Ke & MyFileName), ""

            MyFileName = Dir

        Loop

    Next

    For Each Sh In ThisWorkbook.Worksheets

        If Sh.Name = "XLS文件清单辩中世" Then

            Sheets("XLS文件清单").Cells.Delete

            F = True

            Exit For

        Else

            F = False

        End If

    Next

    If Not F Then

        Sheets.Add.Name = "XLS文件清单"

    End If

    Sheets("XLS文件清单").[A1].Resize(Did.Count, 1) = WorksheetFunction.Transpose(Did.keys)

    TT = Time - T

    MsgBox Minute(TT) & "分" & Second(TT) & "秒"

End Sub


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12149625.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存