Ako získať zoznam súborov vrátane podpriečinkov a zoznam priečinkov pomocou VBA (makro programu Excel).
Dátum vydania:12. júla 2022.
INFOMARTION > Ako získať zoznam súborov vrátane podpriečinkov a zoznam priečinkov pomocou VBA (makro programu Excel).
Prehľad.
Chcel by som popísať, ako získať zoznam súborov a zoznam priečinkov vrátane podpriečinkov pomocou VBA (makro Excelu). Článok je určený pre ľudí, ktorí chcú naprogramovať tieto úlohy
- Chcem získať zoznam všetkých súborov alebo priečinkov v priečinku s ich úplnými cestami.
- Chcete vykonať spracovanie v slučke pre súbory alebo priečinky v rámci priečinka.
1. Spôsob programovania
Referenčné príklady programovania sú uvedené nižšie.
Keďže je vytvorená vo funkcii Function, chcel by som ju skopírovať tak, ako je, a aby sa volania metód uskutočňovali zo Sub.
'Parameter Examples
'## filePath C:\Users\user\Desktop\test\
'## kind false:folder, true:file
'## list
Function getFolderOrFile(filePath As String, kind As Boolean, list As Collection) As Collection
'delete\
Dim filePathEnd As String
filePathEnd = Right(filePath, 1)
If filePathEnd = "\" Then
filePath = Left(filePath, Len(filePath) - 1)
End If
'Folder existence check
Dim result As String
result = Dir(filePath, vbDirectory)
If result = "" Then
MsgBox "File does not exist!"
Exit Function
End If
If kind Then
Dim buf As String
buf = Dir(filePath & "\*.*")
Do While buf <> ""
list.Add filePath & "\" & buf
buf = Dir()
Loop
Else
list.Add filePath
End If
Dim folder As Object
With CreateObject("Scripting.FileSystemObject")
For Each folder In .GetFolder(filePath).SubFolders
getFolderOrFile folder.Path, kind, list
Next folder
End With
End Function
Ak ho chcete použiť, odovzdajte ako argumenty nasledujúce príkazy.
- filePath・・・adresár. Príklad.)C:\Users\user\Desktop\test
- kind・・・Odovzdať true, false. Ak je True, vráti zoznam súborov. Ak je false, vráti zoznam priečinkov.
- list・・・Kolekcia sa používa na ukladanie výsledkov. Príklad implementácie je uvedený nižšie.
Príklad implementácie skutočného volania funkcie je uvedený nižšie.
Sub test()
Dim list As Collection
Set list = New Collection
getFolderOrFile "C:\Users\user\Desktop\test", False, list
Dim item As Variant
For Each item In list
'------TODO------
ThisWorkbook.Worksheets(1).Cells(1, 1).Value = item
Next
End Sub
Volanie getFolderOrFile uloží zoznam súborov alebo zoznam priečinkov do zoznamu. Príklad implementácie je False, takže zoznam priečinkov je uložený.
Proces, ktorý chcete vykonať, opíšte v časti "TODO" v príkaze For. ITEM možno považovať za premennú String.
Referenčný zdroj je proces nastavenia získaného zoznamu na A1 v programe Excel. (Tento proces opakovane prepisuje tú istú bunku.)
2. Kód Popis.
Týmto sa končí návod na používanie systému, po ktorom nasleduje vysvetlenie kódu.
Podrobnosti si môžete pozrieť v kóde, ale kľúčovým bodom je ďalšie volanie metódy getFolderOrFile v metóde getFolderOrFile.
V procese vyhľadávania priečinkov sa proces ďalej opakuje vyvolaním procesu vyhľadávania priečinkov, ktorý je mechanizmom na vyhľadávanie všetkých priečinkov.
Volaním vlastnej metódy opakovane volá svoju vlastnú metódu, kým je priečinok nájdený, pričom prehľadáva všetky priečinky.
3. zhrnutie
Ak potrebujete pomoc s tým, ako získať zoznam súborov a zoznam priečinkov vrátane podpriečinkov pomocou VBA (makier programu Excel), pozrite si túto časť.
Ďakujeme vám za sledovanie až do konca.
■INFORMATION
Kliknutím sem prejdite na hornú stránku s informáciami.
■PROFILE
■Kontaktné údaje.
V prípade otázok týkajúcich sa tohto článku nás kontaktujte tu.