Vba: bestanden in een map weergeven


U kunt de volgende methoden in VBA gebruiken om bestanden in een map weer te geven:

Methode 1: Maak een lijst van alle bestanden in de map

 SubListFiles ()

Dim i As Integer
Dim oFSO As Object
Dim oFolder As Object
Dim objFile As Object

Set oFSO = CreateObject("Scripting.FileSystemObject")

Set oFolder = oFSO.GetFolder("C:\Users\bob\Documents\current_data")

For Each objFile In oFolder.Files
    Cells(i + 1, 1) = objFile.Name
    i = i + 1
Next objFile

End Sub

Methode 2: Geef alleen .xlsx-bestanden in de map weer

 SubListFiles ()

Dim i As Integer
Dim oFSO As Object
Dim oFolder As Object
Dim objFile As Object

Set oFSO = CreateObject("Scripting.FileSystemObject")

Set oFolder = oFSO.GetFolder("C:\Users\bob\Documents\current_data")

For Each objFile In oFolder.Files
    If Right(objFile.Name, 4) = "xlsx" Then
        Cells(i + 1, 1) = objFile.Name
        i = i + 1
    End If
Next objFile

End Sub

De volgende voorbeelden laten zien hoe u elke methode in de praktijk kunt gebruiken met een map met het volgende bestandspad:

  • C:\Gebruikers\bob\Documenten\huidige_data

De map bevat twee .xlsx- bestanden en drie .csv- bestanden:

Voorbeeld 1: Lijst van alle bestanden in de map

We kunnen de volgende macro maken om alle bestanden in de map weer te geven:

 SubListFiles ()

Dim i As Integer
Dim oFSO As Object
Dim oFolder As Object
Dim objFile As Object

Set oFSO = CreateObject("Scripting.FileSystemObject")

Set oFolder = oFSO.GetFolder("C:\Users\bob\Documents\current_data")

For Each objFile In oFolder.Files
    Cells(i + 1, 1) = objFile.Name
    i = i + 1
Next objFile

End Sub

Wanneer we deze macro uitvoeren, ontvangen we de volgende uitvoer:

We kunnen zien dat de namen van alle bestanden in de map (ongeacht hun extensie) nu worden vermeld in kolom A van ons Excel-blad.

Voorbeeld 2: Toon alleen .xlsx-bestanden in de map

We kunnen de volgende macro maken om alleen bestanden met de extensie .xlsx in de map weer te geven:

 SubListFiles ()

Dim i As Integer
Dim oFSO As Object
Dim oFolder As Object
Dim objFile As Object

Set oFSO = CreateObject("Scripting.FileSystemObject")

Set oFolder = oFSO.GetFolder("C:\Users\bob\Documents\current_data")

For Each objFile In oFolder.Files
    If Right(objFile.Name, 4) = "xlsx" Then
        Cells(i + 1, 1) = objFile.Name
        i = i + 1
    End If
Next objFile

End Sub

Wanneer we deze macro uitvoeren, ontvangen we de volgende uitvoer:

We kunnen zien dat de namen van alleen de bestanden met de extensie .xlsx in de map nu in kolom A van ons Excel-blad worden vermeld.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in VBA kunt uitvoeren:

Mappen maken met VBA
Hoe mappen te verwijderen met VBA
Hoe een bestand te hernoemen met VBA
Hoe u kunt controleren of een bestand bestaat met VBA

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert