Kako pridobiti seznam datotek, vključno s podmapami, in seznam map z uporabo VBA (makro programa Excel).
Datum objave:12. julij 2022.
INFOMARTION > Kako pridobiti seznam datotek, vključno s podmapami, in seznam map z uporabo VBA (makro programa Excel).
Pregled.
Opisati želim, kako z uporabo VBA (makro programa Excel) pridobiti seznam datotek in seznam map, vključno s podmapami. Članek je namenjen ljudem, ki želijo programirati naslednje naloge
- Želim dobiti seznam vseh datotek ali map pod mapo z njihovimi polnimi potmi.
- V zanki želite obdelati datoteke ali mape pod mapo.
Kazalo vsebine
1. Metoda programiranja
V nadaljevanju so navedeni referenčni primeri programiranja.
Ker je ustvarjen v funkciji Function, bi ga rad prekopiral tako, kot je, in klical metode iz 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
Če ga želite uporabiti, kot argumente navedite naslednje.
- filePath・・・imenik. Primer.)C:\Users\user\Desktop\test
- kind・・・Pass true, false. Če je True, vrne seznam datotek. Če je false, vrne seznam map.
- list・・・Zbirka se uporablja za shranjevanje rezultatov. V nadaljevanju je prikazan primer izvajanja.
Primer izvajanja dejanskega klica funkcije je prikazan spodaj.
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
S klicem getFolderOrFile se seznam datotek ali seznam map shrani v seznam. Primer izvajanja je False, zato je seznam map shranjen.
Postopek, ki ga želite izvesti, opišite v razdelku "TODO" v stavku For. ITEM lahko obravnavamo kot spremenljivko String.
Referenčni vir je postopek nastavitve pridobljenega seznama na A1 v programu Excel. (Postopek večkrat prepiše isto celico.)
2. Opis kode.
To je konec navodil za uporabo sistema, ki jim sledi razlaga kode.
Podrobnosti si lahko ogledate v kodi, ključna točka pa je nadaljnji klic metode getFolderOrFile v metodi getFolderOrFile.
V postopku iskanja map se postopek nadaljuje s klicem postopka iskanja map, ki je mehanizem za iskanje vseh map.
S klicem lastne metode večkrat pokliče svojo metodo, dokler je mapa najdena, in preišče vse mape.
3. povzetek
Če potrebujete pomoč pri pridobivanju seznama datotek in seznama map, vključno s podmapami, z uporabo VBA (Excelovih makrov), glejte to poglavje.
Hvala, ker ste gledali do konca.