Vba: werkbladen opslaan als csv-bestanden (met voorbeeld)


U kunt de volgende syntaxis in VBA gebruiken om elk blad van een werkmap op te slaan in een CSV-bestand:

 Sub SaveCSV()

Dim Ws As Worksheet
Dim SaveDir As String

Dim CurrentWorkbook As String
Dim CurrentFormat As Long

CurrentWorkbook = ThisWorkbook.FullName
CurrentFormat = ThisWorkbook.FileFormat

'specify directory to save CSV files in
SaveDir = " C:\Users\bobbi\OneDrive\Desktop\ "

'save each sheet to individual CSV file
For Each Ws In Application.ActiveWorkbook.Worksheets
    Ws.SaveAs SaveDir & Ws.Name, xlCSV
Next

Application.DisplayAlerts = False
ThisWorkbook.SaveAs Filename:=CurrentWorkbook, FileFormat:=CurrentFormat
Application.DisplayAlerts = True

End Sub

Deze specifieke macro slaat elk blad van de momenteel actieve werkmap op in een CSV-bestand.

CSV-bestanden worden opgeslagen in het pad dat is opgegeven in de SaveDir- variabele.

Opmerking : de regel Application.DisplayAlerts=False vertelt VBA om tijdelijk alle weergavewaarschuwingen in Excel uit te schakelen bij het opslaan van bestanden.

Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.

Voorbeeld: sla werkbladen op als CSV-bestanden met VBA

Stel dat we een Excel-werkmap hebben met twee bladen.

Het eerste blad heet player_stats en bevat statistieken over verschillende basketbalspelers:

Het tweede blad heet team_info en bevat informatie over verschillende basketbalteams:

Stel dat we elk van deze bladen als afzonderlijke CSV-bestanden op het bureaublad van onze computer willen opslaan.

We kunnen hiervoor de volgende macro maken:

 Sub SaveCSV()

Dim Ws As Worksheet
Dim SaveDir As String

Dim CurrentWorkbook As String
Dim CurrentFormat As Long

CurrentWorkbook = ThisWorkbook.FullName
CurrentFormat = ThisWorkbook.FileFormat

'specify directory to save CSV files in
SaveDir = " C:\Users\bobbi\OneDrive\Desktop\ "

'save each sheet to individual CSV file
For Each Ws In Application.ActiveWorkbook.Worksheets
    Ws.SaveAs SaveDir & Ws.Name, xlCSV
Next

Application.DisplayAlerts = False
ThisWorkbook.SaveAs Filename:=CurrentWorkbook, FileFormat:=CurrentFormat
Application.DisplayAlerts = True

End Sub

Zodra deze macro is uitgevoerd, wordt elk blad als CSV-bestand op ons bureaublad opgeslagen.

Als ik naar het bureaublad van mijn computer navigeer, kan ik elk van deze individuele CSV-bestanden zien met bestandsnamen die overeenkomen met de bladnamen:

Als ik het player_stats CSV-bestand open met Kladblok, kan ik zien dat de waarden in het Excel-bestand zijn opgeslagen als door komma’s gescheiden waarden:

Merk op dat we in dit voorbeeld twee bladen in onze werkmap konden opslaan als individuele CSV-bestanden, maar dezelfde macro werkt met een willekeurig aantal bladen.

Aanvullende bronnen

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

VBA: het aantal vellen in een werkmap tellen
VBA: gegevens uit een andere werkmap extraheren
VBA: nieuwe bladen toevoegen

Einen Kommentar hinzufügen

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