看板 Office 關於我們 聯絡資訊
軟體: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://www.ptt.cc/bbs/Office/M.1537343232.A.F01.html
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
soyoso: 問題1,如原文cnt累加,range("a" & cnt)來列出所有檔案清 09/19 22:46
soyoso: 單 09/19 22:47
soyoso: 問題2. f.subfolders下方以set 變數=fso.getfolder("d:\te 09/19 22:48
soyoso: s\" & sf.name,再將sf.files改為上述變數.files 09/19 22:49
soyoso: 問題2.更正一下是於for each sf...上方加上for each 變數 09/19 22:59
soyoso: in f.files...next,迴圈內再以變數.files輸出 09/19 23:00