作者ptguitar (佩蒂吉他)
看板Office
标题[算表] 取得资料夹下子资料夹所有档案名称?
时间Wed Sep 19 15:47:09 2018
软体:excel
版本:2007
因为要取得某个资料夹下所有子资料夹所有档案的名称(只要档案名称不要资料夹)
vba如下:
filepath是已经指定好的路径上面已经定义好
buf = Dir(filepath & "*.*")
If buf = "" Then
MsgBox "找不到档案"
Exit Sub
End If
Do While buf <> ""
cnt = cnt + 1
Sheets("设定").Range("A" & cnt) = buf
buf = Dir()
Loop
不知道这边要怎麽修改
感谢大大
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 60.250.67.78
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Office/M.1537343232.A.F01.html
1F:→ soyoso: 以filesystemobject,巢状回圈於subfolders和files集合 09/19 16:16
我後来找网路上一些范例自己尝试写
不过有问题不知道怎麽改
1.debug.print那边不知道要怎麽改成可以输出到工作表
我要在工作表设定 从A1开始列出所有档案清单
2.这样似乎只能传回test下面所有子资料夹的档案名称
可是test本身目录下的档案名称不会回传
程式码:
Sub try()
Dim MyPath As String, MyFile As String, File As Workbook
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder("D:\test\")
For Each sf In f.SubFolders
For Each ofile In sf.Files
Debug.Print ofile.Name
Next
Next
End Sub
※ 编辑: ptguitar (110.26.4.193), 09/19/2018 22:12:59
※ 编辑: ptguitar (110.26.4.193), 09/19/2018 22:15:24
2F:→ soyoso: 问题1,如原文cnt累加,range("a" & cnt)来列出所有档案清 09/19 22:46
3F:→ soyoso: 单 09/19 22:47
4F:→ soyoso: 问题2. f.subfolders下方以set 变数=fso.getfolder("d:\te 09/19 22:48
5F:→ soyoso: s\" & sf.name,再将sf.files改为上述变数.files 09/19 22:49
6F:→ soyoso: 问题2.更正一下是於for each sf...上方加上for each 变数 09/19 22:59
7F:→ soyoso: in f.files...next,回圈内再以变数.files输出 09/19 23:00