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
  2. Opis kode.
  3. povzetek

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.




■INFORMATION

Kliknite tukaj za prehod na zgornjo stran INFORMACIJE.


■PROFILE

Kliknite tukaj za profil.


■Kontaktni podatki.

Za poizvedbe o članku nam pišite tukaj.