作者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/m.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