Note: The other languages of the website are Google-translated. Back to English
Inloggen  \/ 
x
or
x
Registreer  \/ 
x

or

Hoe batch meerdere Excel-bestanden converteren naar CSV-bestanden in Excel?

In Excel kunnen we de werkmap naar een CSV-bestand converteren met de functie Opslaan als, maar zou u kunnen weten hoe u meerdere Excel-bestanden batchgewijs kunt converteren naar afzonderlijke CSV-bestanden? In dit artikel introduceer ik een VBA-code om alle Excel-bestanden in een map batchgewijs te converteren naar CSV-bestanden in Excel.

Batch converteer Excel-bestanden van een map naar CSV-bestanden met VBA

Converteer werkbladen naar afzonderlijke CSV-bestanden met Kutools voor Excelgoed idee 3


Batch converteer Excel-bestanden van een map naar CSV-bestanden met VBA

In Excel is er geen ingebouwde functie die deze taak snel kan oplossen, behalve VBA.

1. Schakel Excel in en druk op Alt + F11 sleutels open Microsoft Visual Basic voor toepassingen venster.

2. klikken Invoegen > Module om een ​​nieuwe module te maken.

3. Kopieer onderstaande code en plak ze in het nieuwe modulevenster.

VBA: Batch converteer Excel-bestanden naar CSV

Sub WorkbooksSaveAsCsvToFolder()
'UpdatebyExtendoffice20181031
Dim xObjWB As Workbook
Dim xObjWS As Worksheet
Dim xStrEFPath As String
Dim xStrEFFile As String
Dim xObjFD As FileDialog
Dim xObjSFD As FileDialog
Dim xStrSPath As String
Dim xStrCSVFName As String

    Application.ScreenUpdating = False
    Application.EnableEvents = False
    Application.Calculation = xlCalculationManual
    On Error Resume Next
Set xObjFD = Application.FileDialog(msoFileDialogFolderPicker)
    xObjFD.AllowMultiSelect = False
    xObjFD.Title = "Kutools for Excel - Select a folder which contains Excel files"
    If xObjFD.Show <> -1 Then Exit Sub
    xStrEFPath = xObjFD.SelectedItems(1) & "\"

    Set xObjSFD = Application.FileDialog(msoFileDialogFolderPicker)

    xObjSFD.AllowMultiSelect = False
    xObjSFD.Title = "Kutools for Excel - Select a folder to locate CSV files"
    If xObjSFD.Show <> -1 Then Exit Sub
    xStrSPath = xObjSFD.SelectedItems(1) & "\"

    xStrEFFile = Dir(xStrEFPath & "*.xls*")

    Do While xStrEFFile <> ""
        Set xObjWB = Workbooks.Open(Filename:=xStrEFPath & xStrEFFile)
        xStrCSVFName = xStrSPath & Left(xStrEFFile, InStr(1, xStrEFFile, ".") - 1) & ".csv"
        xObjWB.SaveAs Filename:=xStrCSVFName, FileFormat:=xlCSV
        xObjWB.Close savechanges:=False
        xStrEFFile = Dir
  Loop
    Application.Calculation = xlCalculationAutomatic
    Application.EnableEvents = True
    Application.ScreenUpdating = True
End Sub

4. druk op F5 toets, selecteer de map die de Excel-bestanden bevat die u naar CSV-bestanden wilt converteren in het eerste pop-upvenster.
doc batch naar csv 1

5. klikken OKen selecteer vervolgens in het tweede popping-dialoogvenster de map waarin u de CSV-bestanden wilt plaatsen.
doc batch naar csv 2

6. klikken OK, zijn de Excel-bestanden in de map nu geconverteerd naar CSV-bestanden en opgeslagen in een andere map.
doc batch naar csv 3


Converteer werkbladen naar afzonderlijke CSV-bestanden met Kutools voor Excel

Zoals we weten, kunnen we alleen de hele werkmap converteren naar één CSV-bestand in Excel met de functie Opslaan als. Maar soms wilt u het enkele blad naar een CSV-bestand converteren, in dit geval de Werkmap splitsen nut van Kutools for Excel kan jou helpen.

Kutools for Excel, met meer dan 300 handige functies, maakt uw werk eenvoudiger. 

Na het installeren van Kutools voor Excel, doe het als volgt:(Download nu Kutools voor Excel!)

1. Schakel de werkmap in waarvan u de bladen wilt converteren naar afzonderlijke CSV-bestanden, klik op Kutools Plus > werkboek > Werkmap splitsen.
doc batch naar csv 4

2. In de Werkmap splitsen dialoogvenster, vink de bladnaam aan die u wilt splitsen (alle bladen zijn standaard aangevinkt), vink aan Opslaan als type, kies CSV (Macintosh) (* .CSV) uit de vervolgkeuzelijst.
doc batch naar csv 5

3. klikken Split om een Blader naar de map kies of maak een map om de CSV-bestanden te plaatsen.
doc batch naar csv 6

4. klikken OK, is de werkmap nu opgesplitst als afzonderlijke CSV-bestanden.
doc batch naar csv 7


De beste tools voor kantoorproductiviteit

Kutools voor Excel lost de meeste van uw problemen op en verhoogt uw productiviteit met 80%

  • visfuik: Snel invoegen complexe formules, grafieken en alles wat je eerder hebt gebruikt; Versleutel cellen met wachtwoord; Maak een mailinglijst en stuur e-mails ...
  • Super Formula-balk (bewerk eenvoudig meerdere regels tekst en formule); Lay-out lezen (gemakkelijk grote aantallen cellen lezen en bewerken); Plakken in gefilterd bereik...
  • Voeg cellen / rijen / kolommen samen zonder gegevens te verliezen; Gespleten cellen inhoud; Combineer dubbele rijen / kolommen... Voorkom dubbele cellen; Vergelijk Ranges...
  • Selecteer Dupliceren of Uniek Rijen; Selecteer lege rijen (alle cellen zijn leeg); Super zoeken en fuzzy zoeken in veel werkboeken; Willekeurige selectie ...
  • Exacte kopie Meerdere cellen zonder de formuleverwijzing te wijzigen; Maak automatisch verwijzingen naar meerdere bladen; Plaats kogels, Selectievakjes en meer ...
  • Extraheer tekst, Tekst toevoegen, Verwijderen op positie, Ruimte verwijderen; Paging-subtotalen maken en afdrukken; Converteren tussen celinhoud en opmerkingen...
  • Super filter (bewaar en pas filterschema's toe op andere bladen); Geavanceerd sorteren per maand / week / dag, frequentie en meer; Speciaal filter door vet, cursief ...
  • Combineer werkmappen en werkbladen; Tabellen samenvoegen op basis van sleutelkolommen; Gegevens splitsen in meerdere bladen; Batch Converteer xls, xlsx en PDF...
  • Meer dan 300 krachtige functies. Ondersteunt Office / Excel 2007-2019 en 365. Ondersteunt alle talen. Eenvoudig te implementeren in uw onderneming of organisatie. Gratis proefperiode van 30 dagen met volledige functies. 60 dagen geld-terug-garantie.
kte tabblad 201905

Office-tabblad Brengt een interface met tabbladen naar Office en maakt uw werk veel gemakkelijker

  • Schakel bewerken en lezen met tabbladen in Word, Excel, PowerPoint in, Publisher, Access, Visio en Project.
  • Open en maak meerdere documenten in nieuwe tabbladen van hetzelfde venster in plaats van in nieuwe vensters.
  • Verhoogt uw productiviteit met 50% en vermindert elke dag honderden muisklikken voor u!
officetab onderkant
Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    KonV · 1 months ago
    also er schreibt die verschiedenen Spalten alle in eine Spalte, dass müsste der Fehler sein ?!
  • To post as a guest, your comment is unpublished.
    KonV · 1 months ago
    Hallo,
    das Makro funktioniert ganz gut, aber bei mir kommt, wenn ich als filename:xlCSVUTF8 eine anders formatierte CSV raus als ich über speichern unter -> csv(utf8) erreiche!
    • To post as a guest, your comment is unpublished.
      Mehdi · 23 days ago
      xObjWB.SaveAs Filename:=xStrCSVFName, FileFormat:=xlCSVUTF8
  • To post as a guest, your comment is unpublished.
    TBenson85 · 4 months ago
    Hello, is there a quick change to the code that would allow me to change from a CSV UTF-8 (Comma delimited) to just CSV (Comma delimited)? I tried the first method and was hopeful but it seems like it won't change them since they are already in some form of CSV.  Maybe there is an easier process but I can't find anything.  I have to convert maybe 150 files that were saved in this format and I don't want to open every file and Save As if I can avoid it.  Any help is appreciated!
    • To post as a guest, your comment is unpublished.
      TBenson85 · 4 months ago
      So, after reviewing the code a little closer, I saw where the initial file type had to be .xls.  So replacing with .csv has solved the issue.  
  • To post as a guest, your comment is unpublished.
    Jared · 5 months ago
    This is amazing. Thank-you!
  • To post as a guest, your comment is unpublished.
    wilfried · 7 months ago
    top thanks :) 
  • To post as a guest, your comment is unpublished.
    Sen · 1 years ago
    I think it is worth adding better error handling for files with special characters, currently they are simply ignored.
  • To post as a guest, your comment is unpublished.
    Justin · 1 years ago
    Thank you for sharing. I'm trying to save out multiple xls files which contain a unique value, producing a prompt asking yes or no before saving. The prompt reads..

    "Some features in your workbook might be lost if you save it as a CSV (Comma delimited). Do you want to keep using that format?"

    Would someone know where to add the code to answer yes to this prompt?
  • To post as a guest, your comment is unpublished.
    Sam · 2 years ago
    Another small remark:

    If the cells in the original Excel files are all formatted as "General", some accuracy is lost when the file is saved as a CSV
    For example, if a cell value in Excel is 0.123456789123456, then the value in the CSV will be 0.123456789 (missing the remaining decimals), as long as the cell was formatted as 'General'. This can be solved by formatting all cells in the Excel file to anything else than 'General' (for example, 'Text'). In that case, the CSV *will* still have the full detail/accuracy. I.e. the values in the Excel files will be fully intact after saving as a CSV.

    How could this macro be changes, so it sets the formatting of all cells in the Excel file to 'Text', before saving as a CSV?
    I imagine that it must somehow make use of the following, but I can't figure out how to correctly include in within the macro:

    Cells.Select
    Selection.NumberFormat = "@"
  • To post as a guest, your comment is unpublished.
    Sam · 2 years ago
    Works great, thanks for the code!
    My only remark would be that this code cuts of file names when there is a "." in the filename itself (e.g. file.123.csv turns into file.csv).
    • To post as a guest, your comment is unpublished.
      Carol · 2 years ago
      Have you found a way around this issue?
      • To post as a guest, your comment is unpublished.
        Clara · 2 years ago
        Carol,

        On line 33 I've replaced this code:

        xStrCSVFName = xStrSPath & Left(xStrEFFile, InStr(1, xStrEFFile, ".") - 1) & ".csv"

        With this code:

        xStrCSVFName = xStrSPath & Left(xStrEFFile, InStr(1, xStrEFFile, ".xlsx") - 1) & ".csv"

        Note that if you're using some other excel extension (.xls, .xlsm, etc.) you should change it as such :)
        • To post as a guest, your comment is unpublished.
          Sonya · 1 years ago
          Thank you so much! This has saved me so much time!!
  • To post as a guest, your comment is unpublished.
    Aman · 2 years ago
    Ty it really works dear !!