Navedite datoteke u mapi koristeći VBA u programu Microsoft Excel

Anonim

U ovom ćemo članku stvoriti makronaredbu za popis svih datoteka unutar mape.

Prilikom pokretanja makronaredbe naziv datoteke zajedno s putanjom datoteke prikazat će se počevši od ćelije A17.

Logično objašnjenje

U ovom članku stvorili smo dvije makronaredbe, “datoteke podmape” i “dobivanje_filelist_u_mapi”.
Makronaredba “subfolder_files” uzima putanju mape i logičku vrijednost kao ulaze i vraća naziv datoteke unutar mape.

“Getting_filelist_in_folder” koristi se za pozivanje makronaredbe “subfolder_files”. Pruža vrijednost puta mape do makronaredbe, s logičkom vrijednosti postavljenom 'true'. Također, kada su potrebni nazivi datoteka unutar podmapa, tada dodjeljujemo logičku vrijednost 'true'.

Objašnjenje koda

folder_path = Sheet1.TextBox1.Vrijednost
Gornji kôd koristi se za izdvajanje vrijednosti niza iz okvira za tekst.

Pozovite datoteke podmape (putanja mape, istina)
Gornji kôd koristi se za pozivanje makronaredbe „datoteke podmape“. On dodjeljuje putanju do mape i postavlja svojstvo “include_subfolder” u true.

Postavi fso = CreateObject ("scripting.filesystemobject")
Gornji kôd koristi se za stvaranje objekta datotečnog sustava.

Postavi podmapu1 = fso.getfolder (putanja mape)
Gornji kôd koristi se za stvaranje objekta definirane mape.

Za svaku mapu1 U podmapi1.podmape
Pozovite datoteke podmape (mapa1, istina)
Sljedeći
Gornji kôd koristi se za pregled svih podmapa unutar glavne mape.

Dir (folderpath1 & "*.xlsx")
Gornji kôd koristi se za dobivanje naziva excel datoteke.

Dok je naziv datoteke ""
count1 = count1 + 1
ReDim Očuvaj datotečni niz (1 Za brojanje1)
filearray (count1) = naziv datoteke
naziv datoteke = Dir ()
lužički Srbin

Gornji kôd koristi se za stvaranje niza koji se sastoji od svih naziva datoteka prisutnih unutar mape.

Za i = 1 prema UBound (niz datoteka)
Ćelije (lastrow, 1) .Vrijednost = folderpath1 & filearray (i)
lastrow = lastrow + 1
Sljedeći

Gornji kôd koristi se za dodjeljivanje naziva datoteke unutar polja radnoj knjizi.

Molimo slijedite dolje za kôd

 Opcija Eksplicitne podmape_datoteke_datoteke (put mape1 kao varijanta, izborno uključuje_podmapu Kao logičko) "Provjerava treba li uključiti podmapu ili ne Ako uključi_podmapu Zatim" Deklariranje varijabli Dim naziv datoteke, filearray () Kao String Dim lastrow, count1, i As Integer "Provjerava sadrži li put do mape kosa kosa crta kao zadnji znak If Right (folderpath1, 1) "\" Then folderpath1 = folderpath1 & "\" End If 'Dobivanje naziva datoteke prve datoteke u definiranoj putanji mape filename = Dir (folderpath1 & "*.xlsx")' Dobivanje broja retka posljednje ćelije lastrow = ActiveCell.SpecialCells (xlCellTypeLastCell) .Row + 1 count1 = 0 'Petlja kroz sve datoteke u mapi count1) = naziv datoteke filename = Dir () Wend On Error Idi na last 'Dodavanje naziva datoteke u radnu knjigu Za i = 1 U UBound (filearray) Ćelije (lastrow, 1) .Vrijednost = folderpath1 & filearray (i) lastrow = lastrow + 1 Dalje Završi ako zadnji: Završi sub podmetanje uzimajući_filelistu_u_mapi () 'Deklariranje varijabli Dim folder_path As String Dim fso kao Object, folder1, subfolder1 As Object' Dobivanje putanje do foldera folder_path = Sheet1.TextBox1.Value 'Provjerava sadrži li put mape povratnu crtu kao posljednji znak If Right (folder_path, 1) " \ "Zatim folder_path = folder_path &" \ "End If" Pozivanje mape podmapa_datoteka Pozovi podmape_datoteke (put_mase, True) 'Stvaranje objekta objekta datotečnog sustava Postavi fso = CreateObject ("scripting.filesystemobject") Postavi podmapu1 = fso.getfolder (mapa_puta) 'Ponavljanje svake podmape Za svaku mapu1 U podmapu1.podmape Pozovite datoteke podmape (mapa1, True) Sljedeća završna podmapa 

Ako vam se dopao ovaj blog, podijelite ga sa svojim prijateljima na Facebooku. Također, možete nas pratiti na Twitteru i Facebooku.

Voljeli bismo vas čuti, javite nam kako možemo poboljšati svoj rad i učiniti ga boljim za vas. Pišite nam na web stranici e -pošte