ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[已解决] 求列出指定文件夹下所有子文件夹的完整路径填入表中并截取文件夹名称【请看附件】

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-7-20 20:02 | 显示全部楼层 |阅读模式
本帖最后由 weist123 于 2024-7-21 14:13 编辑

求列出指定文件夹下所有子文件夹的完整路径填入表中并截取文件夹名称【请看附件】



希望:
1、点击按钮1,出现一个选择文件夹的窗口,选择好文件夹后,遍历指定文件夹下所有子文件夹,
并把各个子文件夹的完整路径(只填子文件夹路径,不要其中的文件路径)填入A列,从A2单元格开始填充,一行一个;

2、从A列中各个子文件夹路径中截取子文件夹的名称,填充入B列的对应行中;

3、如果指定的文件夹的子文件夹中,还有下一级子文件夹,那么都要列出,但B列的对应位置只能截取最下一层文件夹名称;


谢谢了!

遍历指定文件夹.rar (8.64 KB, 下载次数: 6)


文件夹示例,请解压缩到某路径下:
360极速浏览器下载.rar (771 Bytes, 下载次数: 6)
image.png

TA的精华主题

TA的得分主题

发表于 2024-7-20 20:49 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
如果指定的文件夹的子文件夹中,还有下一级子文件夹,那是放到C列、D列去?

TA的精华主题

TA的得分主题

发表于 2024-7-20 20:50 | 显示全部楼层
你的附件数据不全,没有子文件夹等结构,不便于调试。

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-7-20 20:58 | 显示全部楼层
ykcbf1100 发表于 2024-7-20 20:49
如果指定的文件夹的子文件夹中,还有下一级子文件夹,那是放到C列、D列去?

若还有下一级子文件夹,就截取最下层的文件夹,放B列,上层的不要

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-7-20 21:02 | 显示全部楼层
ykcbf1100 发表于 2024-7-20 20:50
你的附件数据不全,没有子文件夹等结构,不便于调试。

文件夹示例已经上传,请老师帮忙调试,谢谢

TA的精华主题

TA的得分主题

发表于 2024-7-20 22:05 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
weist123 发表于 2024-7-20 21:02
文件夹示例已经上传,请老师帮忙调试,谢谢

附件供参考。。。

360极速浏览器下载.zip

17.04 KB, 下载次数: 7

TA的精华主题

TA的得分主题

发表于 2024-7-20 22:06 | 显示全部楼层
参与一下。。。

  1. Sub ykcbf()  '//2024.7.20
  2.     Set fso = CreateObject("scripting.filesystemobject")
  3.     Application.ScreenUpdating = False
  4.     p = ThisWorkbook.Path & ""
  5.     On Error Resume Next
  6.     m = 1
  7.     For Each fd In fso.GetFolder(p).SubFolders
  8.         subFolderExists = (fd.SubFolders.Count > 0)
  9.         If subFolderExists Then
  10.             For Each fd1 In fd.SubFolders
  11.                 m = m + 1
  12.                 Cells(m, 1) = fd1.Path
  13.                 Cells(m, 2) = fd1.Name
  14.             Next
  15.         Else
  16.             m = m + 1
  17.             Cells(m, 1) = fd.Path
  18.             Cells(m, 2) = fd.Name
  19.         End If
  20.     Next
  21.     Application.ScreenUpdating = True
  22.     MsgBox "OK!"
  23. End Sub
复制代码


TA的精华主题

TA的得分主题

 楼主| 发表于 2024-7-20 22:26 | 显示全部楼层
ykcbf1100 发表于 2024-7-20 22:05
附件供参考。。。

谢谢老师指导。

但是我希望的是:

点击按钮1,出现一个选择文件夹的窗口,我可以选择任意文件夹,然后会填充表格的,你这个是一点击就ok了。没有选择文件夹。

TA的精华主题

TA的得分主题

发表于 2024-7-21 11:34 | 显示全部楼层
weist123 发表于 2024-7-20 22:26
谢谢老师指导。

但是我希望的是:

改好了,目录自选,默认是当前文件夹

360极速浏览器下载.zip

18.42 KB, 下载次数: 6

TA的精华主题

TA的得分主题

发表于 2024-7-21 11:35 | 显示全部楼层
目录自选
  1. Sub ykcbf()  '//2024.7.21
  2.     Set fso = CreateObject("scripting.filesystemobject")
  3.     Application.ScreenUpdating = False
  4.     With Application.FileDialog(msoFileDialogFolderPicker)
  5.         .Title = "请选择文件夹"
  6.         .InitialFileName = ThisWorkbook.Path & ""
  7.         If .Show = -1 Then
  8.             p = .SelectedItems(1) & ""
  9.         End If
  10.     End With
  11.     On Error Resume Next
  12.     m = 1
  13.     For Each fd In fso.GetFolder(p).SubFolders
  14.         subFolderExists = (fd.SubFolders.Count > 0)
  15.         If subFolderExists Then
  16.             For Each fd1 In fd.SubFolders
  17.                 m = m + 1
  18.                 Cells(m, 1) = fd1.Path
  19.                 Cells(m, 2) = fd1.Name
  20.             Next
  21.         Else
  22.             m = m + 1
  23.             Cells(m, 1) = fd.Path
  24.             Cells(m, 2) = fd.Name
  25.         End If
  26.     Next
  27.     Application.ScreenUpdating = True
  28.     MsgBox "OK!"
  29. End Sub
复制代码


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

本版积分规则

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

GMT+8, 2024-11-18 04:39 , Processed in 0.044063 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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