導航:首頁 > 文件處理 > 遞歸文件夾目錄層級vba

遞歸文件夾目錄層級vba

發布時間:2022-04-21 10:37:18

⑴ vba 遍歷指定文件夾(含子目錄)獲取文件名,哪種方法速度最快

Sub LoopAllExcelFilesInFolder()
Dim wb As Workbook
Dim myPath As String
Dim myFile As String
Dim myExtension As String
Dim FldrPicker As FileDialog

'這里很關鍵,決定宏執行快慢的關鍵
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual

'打開目錄選擇框
Set FldrPicker = Application.FileDialog(msoFileDialogFolderPicker)

With FldrPicker
.Title = "請選擇目錄"
.AllowMultiSelect = False
If .Show <> -1 Then GoTo NextCode
myPath = .SelectedItems(1) & "\"
End With

'取消選擇
NextCode:
myPath = myPath
If myPath = "" Then GoTo ResetSettings

'指定過濾的文件後綴
myExtension = "*.xls*"

'遍歷全路徑
myFile = Dir(myPath & myExtension)

'循環處理每一個文件
Do While myFile <> ""
'打開
Set wb = Workbooks.Open(Filename:=myPath & myFile)

'確保工作簿被打開,在處理下一個文件時
DoEvents

'設置背景色
wb.Worksheets(1).Range("A1:Z1").Interior.Color = RGB(51, 98, 174)

'保存工作簿
wb.Close SaveChanges:=True

'確保工作簿被關閉,在處理下一個文件時
DoEvents

'接著處理下一個
myFile = Dir
Loop

'提示處理完成
MsgBox "處理完成!"

ResetSettings:
'恢復設置
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True

End Sub

⑵ VBA對文件夾和文件排序

用VBA處理
沒有問題


你的問題
比較抽象,對哪一個文件夾、排序條件優先
次序
,用EXCEL中的VBA還是WORD?未明確,故編寫有點!?!
因為剛看到你的提問,時間太緊,你把問題更具體一點,告訴郵箱地址,我把答案發給你。
補充:
附件的宏已經能夠把指定的文件夾中的(包括子文件夾)所有文件遍歷,信息保存在
工作表
中,並按要求排序。
當然可以做到,不用寫入
路徑
,採用
滑鼠
點擊訪問文件夾。因時間來不及,有空改寫後發給你。
附件:遍歷文件並排序.xls

⑶ 求助]如何用VBA遍歷指定目錄下的所有子文件夾和文件-字典模式

F是一個臨時邏輯變數,在循環查找工作簿中是否有名為「XLS文件清單」的工作表,找到為「真」,否則為假。目的是方便後續的代碼處理,如果沒有這個工作表,則先創建建這個工作表,後面才能放置遍歷出來的文件夾及文件名。

⑷ VBA實現遞歸遍歷所選中的路徑,並將該路徑下文件及子文件夾中所有文件路徑列出在第一列,求大神幫忙。

您能提出這等 問題說明您的VBA水平有一定火候了,請看
Function Fllst(Pth$)
Dim Fso As Object
Dim Fld, Fl
Set Fso = CreateObject("Scripting.FileSystemObject")
Set Fld = Fso.getfolder(Pth)
On Error Resume Next

For Each Fl In Fld.Files
[A65536].End(3)(2) = Fl.path
Next
For Each Fl In Fld.SubFolders
Fllst (Fl.path)
Next
End Function

Sub getList()
Dim Fso As Object
Set Fso = CreateObject("Scripting.FileSystemObject")
[A:A].ClearContents
Application.ScreenUpdating = False
Fllst (CreateObject("Shell.Application").BrowseForFolder(0, "請選擇目錄", 0, "").Self.path)
Application.ScreenUpdating = True
Set Fso = Nothing
End Sub

⑸ 怎麼用vba遍歷文件夾里的所有文件

遍歷操作,一般運用於提取和寫入等的操作,其基本原理和代碼都一樣,

遍歷的方法也有很多種,以下我提供一種方法open法,除去紅框以內

的代碼基本都是遍歷的基礎代碼,在這個基礎上可以做根據實際需要的添加修改

⑹ 如何用VBA遍歷指定目錄下的所有子文件夾和文件

SubTest()
DimMyName,Dic,Did,I,T,F,TT,MyFileName
T=Time
SetDic=CreateObject("Scripting.Dictionary")'創建一個字典對象
SetDid=CreateObject("Scripting.Dictionary")
Dic.Add("D:MyDocuments"),""
I=0
DoWhileI<Dic.Count
Ke=Dic.keys'開始遍歷字典
MyName=Dir(Ke(I),vbDirectory)'查找目錄
DoWhileMyName<>""
IfMyName<>"."AndMyName<>".."Then
If(GetAttr(Ke(I)&MyName)AndvbDirectory)=vbDirectoryThen'如果是次級目錄
Dic.Add(Ke(I)&MyName&""),""'就往字典中添加這個次級目錄名作為一個條目
EndIf
EndIf
MyName=Dir'繼續遍歷尋找
Loop
I=I+1
Loop
Did.Add("文件清單"),""'以查找D盤MyDocuments下所有EXCEL文件為例
ForEachKeInDic.keys
MyFileName=Dir(Ke&"*.xls")
DoWhileMyFileName<>""
Did.Add(Ke&MyFileName),""
MyFileName=Dir
Loop
Next
ForEachShInThisWorkbook.Worksheets
IfSh.Name="XLS文件清單"Then
Sheets("XLS文件清單").Cells.Delete
F=True
ExitFor
Else
F=False
EndIf
Next
IfNotFThen
Sheets.Add.Name="XLS文件清單"
EndIf
Sheets("XLS文件清單").[A1].Resize(Did.Count,1)=WorksheetFunction.Transpose(Did.keys)
TT=Time-T
MsgBoxMinute(TT)&"分"&Second(TT)&"秒"
EndSub

⑺ 如何用VBA遍歷指定目錄下的所有子文件夾Excel文件的所有工作表

下面的代碼是手工碼的,不曉得有沒有問題。

subtest()
dimfasstring,mPathasstring,Wbasworkbook,ShasworkSheet
ifworkbooks.count>1thenmsgbox"關閉其他工作簿!":exitsub
mPath="D:臨時文件夾"'指定路徑,注意分層標記
f=dir(mPath&"*.xls*")
dowhilef<>""
iff<>thisworkbook.namethen
setWb=workbooks.open(mPath&f)'只讀方式打開
withWb
foreachShin.workSheets
'對工作表進行操作的代碼段,自己寫。
next
endwith
wb.close0'關閉文件
endif
f=dir'枚舉,以訪問下一個工作簿。
loop
endsub

⑻ 如何通過VBA快速尋找到文件夾及其中的子文件夾,並建立超鏈接。多謝!

Sub ABC()
Dim Sph
Sph = Dir("D:\data\*" & Cells(1, 1) & "*", 16)
If Sph = "" Then Exit Sub
Sph = "D:\data\" & Sph & "\"
Dir Sph, 16
Dir
Do
co = co + 1
sph1 = Dir()
If sph1 = "" Then Exit Do
Cells(2, co) = sph1
ActiveSheet.Hyperlinks.Add Cells(2, co), Sph & sph1
Loop
For i = 1 To co - 1
If Dir(Sph & Cells(2, i) & "\*") <> "" Then
ro = 3
Do
fi = Dir()
If fi = "" Then Exit Do
Cells(ro, i) = fi
ActiveSheet.Hyperlinks.Add Cells(ro, i), Sph & Cells(2, i) & "\" & fi
ro = ro + 1
Loop
End If
Next
End Sub

以上代碼可滿足你的要求。有問題請追問

⑼ 在excal中如何用vba實現目錄樹

不知道你想怎麼實現?既然沒有說明,那就隨便做好了。
用遞歸循環所有目錄,主目錄寫在A列,子目錄依次寫在B、C.....之內就達到你的目的了

⑽ excel用vba指定同級目錄下的子目錄文件

Sub aRef()
Dim i As Long
Dim fs As Object
Set fs = Application.FileSearch
With fs
'設置要查找的起始目錄
.LookIn = "E:\My Documents\Downloads" 『』查找的文件夾
'要查找的文件類型
.FileType = msoFileTypeExcelWorkbooks
'是否查找子目錄
.SearchSubFolders = True
'根據上面的設置執行查找
.Execute
For i = 1 To .FoundFiles.Count
'遍歷打開找到的EXCEL文件
Cells(i, 1) = .FoundFiles(i) ''excel文件的路徑
'其它處理
'.....
Next i
End With
End Sub

閱讀全文

與遞歸文件夾目錄層級vba相關的資料

熱點內容
賣手錶的app哪裡可以賣 瀏覽:51
放管伺服器怎麼辦理 瀏覽:627
手機號碼如何加密 瀏覽:424
沈陽程序員培訓學校 瀏覽:538
一般伺服器如何配置 瀏覽:895
圖片怎樣加密發郵件 瀏覽:619
萬虹電腦文件夾密碼忘記了怎麼辦 瀏覽:631
rc108單片機 瀏覽:867
戰雷如何改變伺服器 瀏覽:674
mactelnet命令 瀏覽:51
壓縮袋壓縮了拿出來 瀏覽:401
安卓手機相機怎麼設置許可權 瀏覽:121
美女程序員轉行做主播 瀏覽:671
辦理解壓房產 瀏覽:575
道路工程概論pdf 瀏覽:390
超棒數學速演算法大全 瀏覽:938
小米易語言登錄源碼 瀏覽:32
磚牆內加密鋼筋 瀏覽:994
鄉關何處pdf 瀏覽:85
小豬領贊小程序源碼 瀏覽:336