精华内容
下载资源
问答
  • VBA遍历文件方法很多,但很多方法又有局限,DIR的方法很难遍历子文件夹文件.FileSearch方法在office 2007中MS把Application对象FileSearch方法删除了.所有我们来用FileSystemObject对象实现遍历文件夹及子文件夹中...

    VBA中遍历文件方法很多,但很多方法又有局限,DIR的方法很难遍历子文件夹文件.FileSearch方法在office 2007中MS把Application对象FileSearch方法删除了.所有我们来用FileSystemObject对象实现遍历文件夹及子文件夹中所有文件.

    代码如下:

     Dim arrFiles()
     Dim countFiles%
     Public Sub ListAllFiles()
        
             Dim strPath$
             Dim i%
             Dim fso As New FileSystemObject, fd As Folder

             strPath = "C:\temp"
             ReDim arrFiles(1 To 1000)
             cntFiles = 0
             Set fd = fso.GetFolder(strPath)
             SearchFiles fd
             ReDim Preserve arrFiles(1 To countFiles)
             For i = 1 To cntFiles
                Msgbox arrFiles(i)
             Next i
     End Sub

     Sub SearchFiles(ByVal fd As Folder)
         Dim fl As File
         Dim sfd As Folder
       
         For Each fl In fd.Files
           countFiles= countFiles+ 1
           If cntFiles > UBound(arrFiles) Then ReDim Preserve arrFiles(1 To countFiles+ 1000)

          arrFiles(cntFiles) = fl.Path
         Next fl
       
         If fd.SubFolders.Count = 0 Then Exit Sub
       
         For Each sfd In fd.SubFolders
           SearchFiles sfd
         Next
       
     End Sub

    展开全文
  • VBA遍历文件夹及子文件夹

    千次阅读 2017-05-28 04:05:10
    遍历文件夹及子文件夹2. 实现代码Function recursiveFolder(strFolder) Dim fso, objFolder, objFiles, objSubFolder Set fso = CreateObject("Scripting.FileSystemObject") If fso.FolderExists(strFolder) Then

    1. 需求
    遍历文件夹及子文件夹

    2. 实现代码

    Function recursiveFolder(strFolder)
    
        Dim fso, objFolder, objFiles, objSubFolder
        Set fso = CreateObject("Scripting.FileSystemObject")
    
        If fso.FolderExists(strFolder) Then
            Set objFolder = fso.getFolder(strFolder)
            Set objFiles = objFolder.Files
            Set objSubFolder = objFolder.subFolders
            For Each oFile in objFiles
                Debug.print "文件名" & oFile.Name
            Next
            For Each oSubFolder In objSubFolder
                recursiveFolder oSubFolder.Path '递归
            Next 
        End If
    End Function
    展开全文
  • 以下是最简单的代码,可以选择文件夹和想要遍历的文件后缀。Sub Find_Files() Dim fldr As FileDialog Dim f, ibox, sn Set fldr = Application.FileDialog(msoFileDialogFolderPicker)fldr.Show f = fldr....

    以下是最简单的代码,可以选择文件夹和想要遍历的文件后缀。

    Sub Find_Files()

    Dim fldr As FileDialog

    Dim f, ibox, sn

    Set fldr = Application.FileDialog(msoFileDialogFolderPicker)

    fldr.Show

    f = fldr.SelectedItems(1)

    f = f & ""

    ibox = InputBox("File Must Contain (Note * wildcards can be used)", , "*.xls*")

    On Error GoTo ext

    sn = Split(CreateObject("wscript.shell").exec("cmd /c Dir """ & f & ibox & """ /s /a /b").stdout.readall, vbCrLf)

    Sheets(1).Cells(1).Resize(UBound(sn) + 1) = Application.Transpose(sn)

    ext:

    End Sub

    选择文件夹:

    16b661eea9fc809a13e1105173d60c93.png

    填写文件后缀,如.xls*

    2bde9b019c6017c39e2d7349e7c67bb6.png
    展开全文
  • EXCEL-VBA:递归遍历文件夹及子文件夹中的文件
        Const SearchPath = "D:\PDF\"
        
        Dim DicList, FileList, I, FileName(), FilePath()
        Set DicList = CreateObject("Scripting.Dictionary")
        Set FileList = CreateObject("Scripting.Dictionary")
        
        DicList.Add SearchPath, ""  '初始化目录
        
        '**************遍历所有目录*******************
        I = 0
        Do While I < DicList.Count
            Key = DicList.Keys '本次要遍历的目录
            NowDic = Dir(Key(I), vbDirectory) '开始查找
            Do While NowDic <> ""
                If (NowDic <> ".") And (NowDic <> "..") Then
                    If (GetAttr(Key(I) & NowDic) And vbDirectory) = vbDirectory Then '找到子目录,则添加
                        DicList.Add Key(I) & NowDic & "\", ""
                    End If
                End If
                NowDic = Dir() '再找
            Loop
            I = I + 1
        Loop
        '****************************************************
        
        '**************遍历目录中的所有文件*******************
        For Each Key In DicList.Keys '查找所有目录中的文件
           NowFile = Dir(Key & "*.pdf")
           Do While NowFile <> ""
                FileList.Add NowFile, Key 'Add(Key,Item)  FileList.Key=文件名,FileList.Item=目录
                NowFile = Dir()
           Loop
        Next
        FileName() = FileList.Keys
        FilePath() = FileList.Items
        '****************************************************

    展开全文
  • 文章目录一、调用目标文件夹的方法1、Application.FileDialog方法2、视窗浏览器界面选择目标文件夹二、仅列出所有文件三、仅列出目标文件夹中所有子文件夹名四、遍历目标文件夹内所有文件、以及所有子文件夹中的所有...
  • 以下是最简单的代码,可以选择文件夹和想要遍历的文件后缀。Sub Find_Files() Dim fldr As FileDialog Dim f, ibox, sn Set fldr = Application.FileDialog(msoFileDialogFolderPicker)fldr.Show f = fldr....
  • 没有覆盖到子文件夹中的文件。Sub Test() Debug.Print (ThisWorkbook.Path) Dim p, stockcode As String Dim f p = ThisWorkbook.Path &amp; "\" f = Dir(p &amp; "*.xlsx") '遍历...
  • VBA遍历指定文件夹的所有文件(包括目录)

    万次阅读 多人点赞 2018-12-29 13:53:14
    VBA遍历指定文件夹的所有文件(包括目录) 1.添加引用:Microsoft Scripting Runtime
  • 用baidir函数加上循环即可。比du如将D:\ABC文件夹内的所有文件zhi显dao示到zhuanA列,代码如下: Sub遍历所有文件() DimFn$,N% Fn=Dir("D:\ABC\*.*") ...上述方法对一层目录有效,并且不对子文件夹进行遍历。 ...
  • 值此良宵佳节之际,祝愿大家都能收到520的红包……咳,说正事,今天给大家分享的VBA代码是如何提取多层文件夹下文件名……什么意思呢?我举个例子,A文件下有B文件夹,B文件夹下有C文件夹,C文件夹下又有D文件夹……...
  • http://excelpx.com/Dispbbs.asp?boardid=177&ID=132522<br />  在VBA遍历文件夹和子文件夹中所有文件,常用两种方法,一种是使用VBA的filesercth对象,另外一种是使用FileSystemObject(windows文件...
  • 使用VBA实现xls批量转xlsx Published on Aug 9, 2019in编程with0 comment 我用Office 2019编辑过的一批xls文件,在Office 2010下无法打开,但另存为xlsx后可以,所以需要将xls批量转换为xlsx。 此时,我的逗比...
  • vba 电子表格 宏代码 编程 用VBA代码实现遍历文件夹下所有*.xls*文件,有两种实现方法
  • 学习资源:《Excel VBA从入门到进阶》第49集 by兰色幻想上节学了怎么遍历一个文件夹的文件,那么假设文件夹里还有文件夹,要怎么获取某文件夹下所有文件和子文件夹下的所有文件路径呢?根据之前所学的,一旦定义了...
  • vba 文件夹递归查找

    千次阅读 2012-05-16 11:21:32
    文件夹遍历结束后,再调用Dir默认的路径仍然是子文件夹,已经遍历完了,所以出错。 建议使用下面方法: Sub test002(folderspec)  Dim fs, f, f1, sf, fc  Dim mypath As String, fn As String  Dim i A
  • 如何用VBA遍历指定文件夹内的所有文件? 如果仅仅是指定文件夹下的文件而不包括子文件夹内文件的话,那好办。一个Do...While加上Dir就可以搞定。要包括子文件夹,那就要费一番小功夫了。 网上没有找到用Dir的完美...
  • dos命令在vba中应用

    2019-02-15 12:11:00
    正常情况下想要遍历文件夹和子文件夹,可以采用递归的方式 Sub ListFilesTest() With Application.FileDialog(msoFileDialogFolderPicker) If .Show Then myPath$ = .SelectedItems(1) Else Exit Sub End...
  • 第49集 文件夹遍历 225、 父子转换法遍历所有文件夹及子文件夹、子文件 Sub 父子转换法演示程序() Dim 父亲(1 To 10000) '存放所有文件夹名称及其路径 Dim f, i, k, f2, f3, x Dim arr1(1 To 100000, 1 To 1) '存放...
  • Excel VBA 常用文件处理

    千次阅读 2009-03-17 14:24:00
    好久没有写文章了,整理电脑时,偶尔发现以前总结的VBA学习笔记,与大家共同分享:1、遍历某个文件夹下所有文件(不包括子文件夹); Dim strDir As String Dim strFileName As String strDir = "D:/123" ...
  • 相关知识点: Collection对象: 用于存放任意多个对象,不需要事先指定其长度,常用方法: Add方法:添加一个元素 Clear方法:清空所有元素 ...例1 递归遍历子文件夹,将找到的文件夹名字存放在数组里...

空空如也

空空如也

1 2
收藏数 32
精华内容 12
关键字:

vba子文件夹文件夹遍历