ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: banolee

[已解决] [求助]如何用VBA遍历指定目录下的所有子文件夹和文件

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2010-9-25 13:35 | 显示全部楼层
看看是否你想要的

提取数据.rar

15.27 KB, 下载次数: 482

TA的精华主题

TA的得分主题

发表于 2010-9-25 17:39 | 显示全部楼层
太感谢了,正是我所需要的,把所有的文件放在同一个子目录下,然后将数据提取出来,我再试试多些的文件,辛苦了,以后还请多指教。

TA的精华主题

TA的得分主题

发表于 2010-9-25 18:10 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
提取的数字,不是全部,需要提取的又好像不对。

TA的精华主题

TA的得分主题

发表于 2010-9-26 14:44 | 显示全部楼层
验证了一下,提取的数据是正确的,楼上的朋友如发现有错误,可否告知一下,再次感谢yf老师

TA的精华主题

TA的得分主题

发表于 2010-11-13 12:32 | 显示全部楼层
Private Sub CommandButton1_Click()
    Dim fs
    Dim mypath As String
    Dim theSh As Object
    Dim theFolder As Object
    On Error Resume Next
     Range("A2:B65536").ClearContents '表中的数据清除
    '设置搜索目录
   Set theSh = CreateObject("shell.application")
    Set theFolder = theSh.BrowseForFolder(0, "", 0, "")
    If Not theFolder Is Nothing Then
        mypath = theFolder.Items.Item.Path
    End If
   '//////////////搜索开始//////////////
   Set fs = Application.FileSearch
    With fs
        .NewSearch
        .SearchSubFolders = True          ''搜索子目录
        .LookIn = mypath                  '搜索路径
        .Filename = "*.*"                 '搜索文件的种类
        If .Execute(SortBy:=msoSortByFileName) > 0 Then
            c = .FoundFiles.Count         '统计搜索到的文件个数
            MsgBox "在这里找到" & .FoundFiles.Count & _
            "文件"                  '输出搜索到的文件个数
            For i = 1 To c
            strTemp = .FoundFiles(i)      '设置临时文件
            n = InStrRev(strTemp, "\")    '获取文件路径长度(不包括文件名)
            strfilename = Replace(strTemp, Left(strTemp, n), "")             '获取文件名及扩展名
            Cells(i + 1, 1) = Left(strfilename, Len(strfilename) - 0)        '输出格式:文件名+扩展名
            Cells(i + 1, 2) = Left(strTemp, Len(strTemp) - Len(strfilename)) '输出格式:文件路径
            Next
        End If
    End With
    Set fs = Nothing
End Sub
希望能帮到你

TA的精华主题

TA的得分主题

发表于 2010-11-13 19:45 | 显示全部楼层
原帖由 lujun_2015 于 2010-11-13 12:32 发表
Private Sub CommandButton1_Click()
    Dim fs
    Dim mypath As String
    Dim theSh As Object
    Dim theFolder As Object
    On Error Resume Next
     Range("A2:B65536").ClearContents '表中的数 ...

请教lujun_2015,我若用你这段代码遍历选定文件夹下的Excel文档,统一在B2单元格输入“中国”两字,需要修改哪段代码?(或者说头尾哪些部分是公共部分?)请指教!!!!

TA的精华主题

TA的得分主题

发表于 2010-11-17 22:27 | 显示全部楼层
不能用Application.FileSearch了。很是让我费周折。终于又找到了!

TA的精华主题

TA的得分主题

发表于 2010-11-18 14:31 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2010-11-18 15:04 | 显示全部楼层
MyBook1.1工具 的功能

1.(文件查找)“功能已完成“
选择相关目录下的文件并 输出文件名 和 文件的相对路径….
   
2.(相关数据修改)“功能未完成“
点击选择相关目录下的文件,里面的文件夹都有跟 “数据模样.xls“ 相同的”.xls“ 文件 选择完毕后 点击OK 就完成“数据模样.xls“里面的数据修改。 修改的数据都在“数据模样.xls“的Sheet2工作表里面,A列不是整数的往上取整,并在相关的B,C,D列修改相关数据 B列为获取 当前时间,C列 为全部改成 提交,D列 为全部改成BS程。

3.(光标设置在A1)“功能未完成“
    点击选择相关目录下的文件,选择完毕后点击OK,实现在该文件的ThisWorkbook下面写上一下代码“
Sub workbook_open()
Sheet1.Activate
End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)

    Application.EnableEvents = False
    Application.Goto Sh.Range("A1")
    Application.EnableEvents = True
   
End Sub “
实现光标定在A1


希望各位高手指教一下 谢谢

点_按_ 相_数据的大批量修改.rar

32.97 KB, 下载次数: 137

TA的精华主题

TA的得分主题

发表于 2010-11-22 20:53 | 显示全部楼层
原帖由 zldccmx 于 2008-9-21 18:18 发表
Sub Test() '使用双字典,旨在提高速度    Dim MyName, Dic, Did, I, T, F, TT, MyFileName    T = Time    Set Dic = CreateObject("Scripting.Dictionary") &n ...


一直纳闷2007没有了filesearch怎么来操作多层次的文件夹的问题。
看了半天才基本理清思路,老朽老师几个循环套用得登峰造极,望尘莫及。
叹服。。。。。。。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-22 05:59 , Processed in 0.030801 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表