Hogyan kaphatunk egy listát a fájlokról, beleértve az almappákat és a mappák listáját VBA (Excel makró) segítségével.
Megjelenés dátuma:2022. július 12.
INFOMARTION > Hogyan kaphatunk egy listát a fájlokról, beleértve az almappákat és a mappák listáját VBA (Excel makró) segítségével.
Áttekintés.
Szeretném leírni, hogyan lehet a fájlok és a mappák listáját, beleértve az almappákat is, VBA (Excel makró) segítségével megszerezni. A cikk azoknak szól, akik a következő feladatokat szeretnék programozni
- Egy mappa alatt található összes fájl vagy mappa listáját szeretném megkapni a teljes elérési útvonallal együtt.
- Egy mappa alatti fájlok vagy mappák feldolgozását egy ciklusban szeretné elvégezni.
Tartalomjegyzék
1. Programozási módszer
A programozásra vonatkozó referenciapéldák az alábbiakban találhatók.
Mivel a Function-ben jön létre, szeretném, ha úgy másolnák át, ahogy van, és a metódushívások a Sub-ból történnének.
'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
Használatához a következőket adja meg argumentumként.
- filePath・・・könyvtár. Példa.)C:\Users\user\Desktop\test
- kind・・・Pass true, false. Ha True, a fájlok listáját adja vissza. Ha false, a mappák listáját adja vissza.
- list・・・A gyűjtemény az eredmények tárolására szolgál. Az alábbiakban egy példát mutatunk be.
Az alábbiakban egy tényleges függvényhívás példaimplementációja látható.
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
A getFolderOrFile meghívása a fájlok vagy mappák listáját tárolja a listában. A megvalósítási példa False, így a mappák listája tárolásra kerül.
A For utasítás "TODO" szakaszában írja le a végrehajtandó folyamatot. ITEM string változóként kezelhető.
A referenciaforrás a megszerzett lista A1-re történő beállításának folyamata az Excelben. (A folyamat ismételten felülírja ugyanazt a cellát.)
2. Kód Leírás.
Itt ér véget a rendszer használatára vonatkozó utasítás, amelyet a kód magyarázata követ.
A részletek a kódban láthatók, de a kulcspont a getFolderOrFile metódusban a getFolderOrFile további hívása.
A mappák keresése során a folyamat tovább ismétlődik a mappák keresése folyamatának meghívásával, amely az összes mappa keresésének mechanizmusa.
A saját metódus meghívásával ismételten meghívja a saját metódusát, amíg a mappát megtalálja, az összes mappát átkutatva.
3. összefoglaló
Ha segítségre van szüksége a fájlok és mappák listájának - beleértve az almappákat is - VBA (Excel-makrók) használatával történő lekérdezéséhez, kérjük, olvassa el ezt a részt.
Köszönjük, hogy a végéig figyeltek.