Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2981|回复: 4

[已解决]请老师修改已写好的程序,谢谢蓝桥老师!

[复制链接]
发表于 2016-10-14 14:29 | 显示全部楼层 |阅读模式
本帖最后由 lhj323323 于 2016-10-17 10:13 编辑

老师:

上传的附件,内附写好的程序,可用于提取任意路径的所有文件,但存在问题,想请老师帮忙修改,先谢谢了。
新建.rar (99.57 KB, 下载次数: 18)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2016-10-14 16:34 | 显示全部楼层
请看附件。

新建.rar

16.3 KB, 下载次数: 8

回复

使用道具 举报

发表于 2016-10-15 08:27 | 显示全部楼层
回复

使用道具 举报

发表于 2016-10-16 10:44 | 显示全部楼层    本楼为最佳答案   
  1. Sub test() '提取指定文件夹内的所有文件名
  2.            '含所有子文件夹内的文件
  3.     Dim Fso As Object, arrf$(), mf&
  4.     Set Fso = CreateObject("Scripting.FileSystemObject")
  5.     Call GetFiles(CreateObject("Shell.Application").BrowseForFolder(0, "请选择文件夹", 0, "").Self.Path, Fso, arrf, mf)
  6.     Sheet2.[b2].Resize(mf) = Application.Transpose(arrf)
  7.     Set Fso = Nothing
  8. End Sub
  9. Private Sub GetFiles(ByVal sPath$, ByRef Fso As Object, ByRef arrf$(), ByRef mf&)
  10.     Dim Folder As Object
  11.     Dim SubFolder As Object
  12.     Dim File As Object
  13.     Set Folder = Fso.GetFolder(sPath)
  14.    
  15.     For Each File In Folder.Files
  16.         mf = mf + 1
  17.         ReDim Preserve arrf(1 To mf)
  18.         arrf(mf) = File.Path '& File.Name
  19.     Next
  20.     For Each SubFolder In Folder.SubFolders
  21.         Call GetFiles(SubFolder.Path, Fso, arrf, mf)
  22.     Next
  23.     Set Folder = Nothing
  24.     Set File = Nothing
  25. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2016-10-17 10:11 | 显示全部楼层

谢谢蓝桥老师的帮助!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-7 14:37 , Processed in 0.251588 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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