Note: The other languages of the website are Google-translated. Back to English

Hoe converteer ik meerdere CSV-bestanden batchgewijs naar XLS (X) -bestanden in Excel?

Het converteren van een CSV-bestand naar XlS- of XLSX-bestand is heel eenvoudig voor u door de functie Opslaan als toe te passen. Het is echter tijdrovend om meerdere CSV-bestanden vanuit een map naar XLS- of XLSX-bestanden te converteren door ze een voor een handmatig op te slaan. Hier introduceer ik een macrocode om snel alle CSV-bestanden vanuit een map naar XLS (x) -bestanden te converteren.

Batch converteer CSV-bestanden naar XlS (X) -bestanden met macrocode


Batch converteer CSV-bestanden naar XlS (X) -bestanden met macrocode

Om meerdere CSV-bestanden van één map naar XLS (X) -bestanden te converteren, kunt u de onderstaande stappen uitvoeren:

1. Activeer een nieuwe werkmap, druk op Alt + F11 sleutels om te openen Microsoft Visual Basic voor toepassingen venster en klik Invoegen > Module. Zie screenshot:
doc batch converteren cvs xls 1

Opmerking:: Zorg ervoor dat alle CSV-bestanden die u wilt converteren, zijn gesloten.

2. Plak vervolgens onderstaande macrocode in het Module script en druk op F5 sleutel om de code uit te voeren.

VBA: converteer CSV naar XLS

Sub CSVtoXLS()
'UpdatebyExtendoffice20170814
    Dim xFd As FileDialog
    Dim xSPath As String
    Dim xCSVFile As String
    Dim xWsheet As String
    Application.DisplayAlerts = False
    Application.StatusBar = True
    xWsheet = ActiveWorkbook.Name
    Set xFd = Application.FileDialog(msoFileDialogFolderPicker)
    xFd.Title = "Select a folder:"
    If xFd.Show = -1 Then
        xSPath = xFd.SelectedItems(1)
    Else
        Exit Sub
    End If
    If Right(xSPath, 1) <> "\" Then xSPath = xSPath + "\"
    xCSVFile = Dir(xSPath & "*.csv")
    Do While xCSVFile <> ""
        Application.StatusBar = "Converting: " & xCSVFile
        Workbooks.Open Filename:=xSPath & xCSVFile
        ActiveWorkbook.SaveAs Replace(xSPath & xCSVFile, ".csv", ".xls", vbTextCompare), xlNormal
        ActiveWorkbook.Close
        Windows(xWsheet).Activate
        xCSVFile = Dir
    Loop
    Application.StatusBar = False
    Application.DisplayAlerts = True
End Sub

3. Selecteer in het pop-outvenster de opgegeven map met de CSV-bestanden die u wilt converteren. Zie screenshot:
doc batch converteren cvs xls 2

4. klikken OK, zijn alle CSV-bestanden in de geselecteerde map geconverteerd naar XLS-bestanden erin.
doc batch converteren cvs xls 3

Tip: Als u CSV-bestanden naar XLSX-bestanden wilt converteren, gebruikt u onderstaande VBA-code.

VBA: converteer CSV-bestanden naar XLSX

Sub CSVtoXLS()
'UpdatebyExtendoffice20170814
    Dim xFd As FileDialog
    Dim xSPath As String
    Dim xCSVFile As String
    Dim xWsheet As String
    Application.DisplayAlerts = False
    Application.StatusBar = True
    xWsheet = ActiveWorkbook.Name
    Set xFd = Application.FileDialog(msoFileDialogFolderPicker)
    xFd.Title = "Select a folder:"
    If xFd.Show = -1 Then
        xSPath = xFd.SelectedItems(1)
    Else
        Exit Sub
    End If
    If Right(xSPath, 1) <> "\" Then xSPath = xSPath + "\"
    xCSVFile = Dir(xSPath & "*.csv")
    Do While xCSVFile <> ""
        Application.StatusBar = "Converting: " & xCSVFile
        Workbooks.Open Filename:=xSPath & xCSVFile
        ActiveWorkbook.SaveAs Replace(xSPath & xCSVFile, ".csv", ".xlsx", vbTextCompare), xlWorkbookDefault
        ActiveWorkbook.Close
        Windows(xWsheet).Activate
        xCSVFile = Dir
    Loop
    Application.StatusBar = False
    Application.DisplayAlerts = True
End Sub

converteer of exporteer snel een reeks van een blad om XLS / Word / PDF- of andere formaatbestanden in één keer te scheiden

Normaal gesproken ondersteunt Excel u niet met een optie om snel een bereik te exporteren of op te slaan als een CSV- of Excel-bestand. Als u een gegevensbereik als CSV of werkmap in Excel wilt opslaan, moet u mogelijk een VBA-macro gebruiken om dit te doen of om het bereik naar het klembord te kopiëren en in een nieuwe werkmap te plakken en vervolgens de werkmap op te slaan als CSV of Werkboek. Kutools for Excel vergroot Excel met Bereik exporteren naar bestand hulpprogramma voor Excel-gebruikers die de volgende bewerkingen snel willen verwerken:  Klik voor
30
-dag volledige gratis proefversie!
doc celbereik exporteren naar bestand
 
Kutools voor Excel: met meer dan
300
handige Excel-add-ins, gratis te proberen zonder enige beperking
30
dagen.

Relatieve artikelen:


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-2021 en 365. Ondersteunt alle talen. Eenvoudig te implementeren in uw onderneming of organisatie. Volledige functies Gratis proefperiode van 30 dagen. 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 honderden muisklikken voor u elke dag!
officetab onderkant
Comments (37)
Nog geen beoordelingen. Beoordeel als eerste!
Deze opmerking is gemaakt door de moderator op de site
Ik wil het tegenovergestelde doen - XLS naar CSV converteren. werkt dit script?
Sub CSVnaarXLS()
'Bijwerken door'Extendoffice20170814
Dim xFd als FileDialog
Dim xSPath als string
Dim xXLSFile als string
Dim xWsheet als string
Application.DisplayAlerts = False
Toepassing.StatusBar = True
xWsheet = ActiveWorkbook.Naam
Stel xFd = Application.FileDialog (msoFileDialogFolderPicker) in
xFd.Title = "Selecteer een map:"
Als xFd.Toon = -1 Dan
xSPath = xFd.SelectedItems(1)
Anders
Exit Sub
End If
Als Rechts(xSPath, 1) <> "\" Dan xSPath = xSPath + "\"
xXLSFile = Dir(xSPath & "*.xls")
Doen terwijl xXLSFile <> ""
Application.StatusBar = "Converteren: " & xXLSFile
Workbooks.Open bestandsnaam:=xSPath & xXLSFile
ActiveWorkbook.SaveAs Replace(xSPath & xXLSFile, ".xls", ".csv", vbTextCompare), xlNormal
ActiveWorkbook.Close
Windows(xWsheet).Activeren
xXLSFile = Dir
Ringleiding
Application.StatusBar = False
Application.DisplayAlerts = Waar
End Sub
Deze opmerking is gemaakt door de moderator op de site
Sub ConvertCSVToXlsx()



Dim mijn bestand als string

Dim oude naam als tekenreeks, nieuwe naam als tekenreeks

Dim werkbestand

Dim mapnaam als string



Application.DisplayAlerts = False

Application.ScreenUpdating = False



' Naam van huidig ​​bestand vastleggen

mijnbestand = ActiveWorkbook.Name



' Stel de mapnaam in om door te werken

folderName = "D:\tmp\"



' Loop door alle CSV-bestanden in de map

werkbestand = Dir(mapnaam & "*.CSV")

Do While-werkbestand <> ""

' CSV-bestand openen

Workbooks.Open bestandsnaam:=mapnaam & werkbestand

' Capture naam van oud CSV-bestand

oldfname = ActiveWorkbook.FullName

' Converteren naar XLSX

newfname = mapNaam & Links(ActieveWerkboek.Naam, Len(ActieveWerkmap.Naam) - 4) & ".xlsx"

ActiveWorkbook.SaveAs Bestandsnaam:=newfname, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=True

ActiveWorkbook.Close

' Oud CSV-bestand verwijderen

Oude naam doden

Windows(mijnbestand).Activeren

werkbestand = Dir()

Ringleiding



Application.DisplayAlerts = Waar

Application.ScreenUpdating = True



End Sub
Deze opmerking is gemaakt door de moderator op de site
"Tip: Als u CSV-bestanden naar XLXS-bestanden wilt converteren, hoeft u alleen maar .xls te wijzigen in .xlsx in de macro ActiveWorkbook.SaveAs Replace(xSPath & xCSVFile, ".csv", ".xls", vbTextCompare)."

Ik heb dit geprobeerd en Excel kon de resulterende bestanden niet openen. Ik kreeg het volgende bericht: "Excel kan het bestand 'bestandsnaam.xlsx' niet openen omdat het bestandsformaat of de bestandsextensie niet geldig is. Controleer of het bestand niet beschadigd is en of de bestandsextensie overeenkomt met het formaat van het bestand."

Het script is echter succesvol geconverteerd naar .xls.
Deze opmerking is gemaakt door de moderator op de site
Ik heb dat probleem niet eerder gevonden, bedankt voor je correcte opmerking. Ik heb de tip aangepast.
Deze opmerking is gemaakt door de moderator op de site

Deze opmerking is gemaakt door de moderator op de site
Heel erg bedankt voor je uitstekende script voor CSV naar XLS. Het is veel nuttiger voor mijn werk
Deze opmerking is gemaakt door de moderator op de site
Hoi,

Je script is geweldig, maar het converteert de csv niet, gescheiden door puntkomma's. Kun je daar een oplossing voor posten?

Bedankt
Deze opmerking is gemaakt door de moderator op de site
Sorry, hier heb ik geen oplossing, misschien kun je je vraag op ons forum plaatsen, iemand anders kan je helpen. https://www.extendoffice.com/forum.html
Deze opmerking is gemaakt door de moderator op de site
ik ben misschien te laat, ik heb net het probleem gekregen waarbij ik de CSV-bestanden met puntkomma's moest converteren en ik heb dit aan de code toegevoegd en het werkte, ik hoop dat dit iemand zal helpen

Wijzig 'Workbooks.Open Filename:=xSPath & xCSVFile' door deze 'Workbooks.Open Filename:=xSPath & xCSVFile, Delimiter:=";", Local:=True'
Deze opmerking is gemaakt door de moderator op de site
Ik gebruikte het bestand meerdere csv naar meerdere xls maar krijg de verkeerde xls de csv-bestanden hebben; gescheiden info maar worden samen in cellen. Hoe kan dit worden opgelost?
Deze opmerking is gemaakt door de moderator op de site
De code kan het gescheiden komma-csv-bestand niet ondersteunen.
Deze opmerking is gemaakt door de moderator op de site
Toen ik de mapnaam gaf, zei het programma: "Er zijn geen bestanden die overeenkomen met uw zoekopdracht." Maar er zijn 2,609 .csv-bestanden in de map
Deze opmerking is gemaakt door de moderator op de site
De code ondersteunt het gescheiden komma csv-bestand niet, zijn uw bestanden in dit geval?
Deze opmerking is gemaakt door de moderator op de site
Hallo,

een geweldig artikel - bedankt! Werkt bijna voor mij.

Hier is het probleem: ik heb een csv-bestand met scheidingstekens. Ik heb het standaard Windows-scheidingsteken (via het configuratiescherm/regionale instellingen) gewijzigd in "|". Dus wanneer ik het csv-bestand met Excel open, wordt de velden correct geopend, gelezen en geparseerd naar kolommen. Ik hoef alleen maar op te slaan als xls of xlsx, klaar. Als ik naar je code kijk, zou dat moeten zijn wat de code doet: het opent de csv-bestanden in een map, slaat ze op als xls of xlsx en loopt daar overheen.

Hier is het probleem: wanneer ik die Excel-bestanden open, zijn de scheidingstekens voor leidingen er nog steeds, er wordt niets naar de kolommen geparseerd. Dit was het gedrag zoals vóór mijn wijziging in de door pijpen gescheiden standaardinstelling in de Windows-instellingen. Het lijkt er dus op dat Excel die Windows-instellingen niet gebruikt. Ik heb dit geverifieerd door de door komma's gescheiden scheidingstekens in een kopie van het bestand te vervangen - van de twee bestanden bleef het gescheiden door komma's gescheiden, het door komma's gescheiden scheidingsteken werd prima geconverteerd.

Enig idee waar die in Excel ingebouwde komma-afbakening kan worden gevonden of gewijzigd, of dat er een manier is in de code om dat te doen? Ik zou liever NIET hoeven zoeken en vervangen, en dan opslaan...

Bedankt, HC
Deze opmerking is gemaakt door de moderator op de site
Als u de gegevens in kolommen wilt splitsen op basis van het pijpscheidingsteken in Excel, gebruikt u de functie Tekst naar kolommen om gegevens te splitsen door / nadat de csv-bestanden naar xls zijn gekopieerd.
Deze opmerking is gemaakt door de moderator op de site
Maakt de code niet echt bruikbaar voor Excel-bestanden.
Deze opmerking is gemaakt door de moderator op de site
Hallo, geweldig script dat voor mij werkte na het proberen van alle andere scripts die beschikbaar zijn in Google. Ik heb nog een paar regels toegevoegd die de tekst naar kolommen uitvoeren die ik wil. Kan iemand me helpen hoe ik het script kan wijzigen door de maplocatie op de lokale schijf op te geven in plaats van het dialoogvenster te openen, omdat ik het systeem feitelijk automatiseer
. Bij voorbaat bedankt
Deze opmerking is gemaakt door de moderator op de site
Hi
Kun je het script delen dat de tekst naar kolommen uitvoert??
Beste wensen
Deze opmerking is gemaakt door de moderator op de site
Geweldig script na het doorzoeken van alle andere scripts die beschikbaar zijn in Google. Kan iemand helpen hoe dit script te wijzigen door een maplocatie op de lokale schijf op te geven in plaats van toe te staan ​​dat het dialoogvenster wordt geopend, omdat ik het systeem feitelijk automatiseer. Bij voorbaat dank
Deze opmerking is gemaakt door de moderator op de site
Cool stukje code. Zeer nuttig. Als ik me niet vergis, ziet de code voor .xlsx er hetzelfde uit als de .xls-code.

Deze lijn:
ActiveWorkbook.SaveAs Replace(xSPath & xCSVFile, ".csv", ".xls", vbTextCompare), xlWorkbookDefault

Ik neem aan dat het zou moeten zijn: ".csv", ".xlsx", vbTextCompare etc.
Deze opmerking is gemaakt door de moderator op de site
Ik heb de code zo veranderd, zoals hierboven beschreven; nu werkt het script zoals verwacht: het genereert xlsx-bestanden
Deze opmerking is gemaakt door de moderator op de site
nee dat heb je niet. er staat nog steeds xls in beide versies.
Deze opmerking is gemaakt door de moderator op de site
deze macro toont mijn csv-bestand niet
Deze opmerking is gemaakt door de moderator op de site
Een klein probleem met deze code is dat enige nauwkeurigheid (aantal decimalen) verloren kan gaan bij het openen van een csv en het opslaan als xlsx.
De manier om dit te voorkomen is door direct na het openen alle cellen te selecteren, het aantal decimalen op het gewenste aantal te zetten (15 voor mij persoonlijk), en *vervolgens* op te slaan als xlsx

Anders heeft de xlsx minder details (minder nauwkeurigheid in termen van decimalen) dan de originele csv, wat in sommige toepassingen tot problemen kan leiden
Deze opmerking is gemaakt door de moderator op de site
het verandert mijn datumkolomformaat van dd-mm-jjjj in dd/mm/jjjj, kan iemand me alsjeblieft helpen hoe te voorkomen dat dit script de kolomformaten verandert.
Heel erg bedankt.
Deze opmerking is gemaakt door de moderator op de site
Hallo adder, na conversie kun je ze terug formatteren, de datums selecteren en met de rechtermuisknop klikken om Cellen opmaken te kiezen in het contextmenu, in het dialoogvenster Celld opmaken, onder het tabblad Getal, klik op Aangepast in de categorielijst en typ mm-dd- yyyy in het tekstvak in het rechtergedeelte. Of als u Kutools for Excel hebt, past u de Datumopmaak toepassen toe om de datumnotatie naar behoefte te wijzigen.
Deze opmerking is gemaakt door de moderator op de site
geweldig artikel. Hoe kan ik alle geconverteerde bestanden op een nieuwe locatie opslaan? Kunt u alstublieft de code bijwerken en naar mij opsturen. Zoals de gebruiker toestaan ​​zijn doelmap te kiezen.


Bedankt
Deze opmerking is gemaakt door de moderator op de site
Je hebt een fout op regel 22 van de csv naar xlsx
Met fout - ActiveWorkbook.SaveAs Replace (xSPath & xCSVFile, ".csv", ".xls", vbTextCompare), xlWorkbookDefault
Gecorrigeerd - ActiveWorkbook.SaveAs Replace(xSPath & xCSVFile, ".csv", ".xslx", vbTextCompare), xlWorkbookDefault
Deze opmerking is gemaakt door de moderator op de site
Bedankt voor je herinnering, ik heb het bijgewerkt, nogmaals bedankt.
Deze opmerking is gemaakt door de moderator op de site
Ik krijg een foutmelding "Objectvariabele of met blokvariabele niet ingesteld" voor deze regel:
xFd.Title = "/Users/[my.name]/Documents/[myFolder]" >> dit is het pad van een bepaalde map op mijn computer waar ik de conversie uitvoer (de map bevat een aantal csv-bestanden )

Doe ik hier iets fout?
Deze opmerking is gemaakt door de moderator op de site
Dit werkt voor mij, maar de bestandsextensie verandert niet. Enige tips?
Deze opmerking is gemaakt door de moderator op de site
Hetzelfde geldt voor mij -- alle bestanden blijven .csv.
Deze opmerking is gemaakt door de moderator op de site
Alle csv-bestanden die u kiest, zijn opgeslagen als nieuwe Excel-bestanden, de originele bestanden (csv) veranderen niet, er zijn nieuwe Excel-bestanden met dezelfde inhoud.
Deze opmerking is gemaakt door de moderator op de site
Ik had hetzelfde probleem. Als uw bronbestand een extensie in hoofdletters (.CSV) heeft, werkt het niet. Vervang gewoon .csv door .CSV in de code in regel 22 en dan zou het moeten werken. Nou ja, bij mij deed het dat tenminste.
Deze opmerking is gemaakt door de moderator op de site
Hoe zou ik code opnemen in de XLSX-batchbestandsroutine om de gegevens door puntkomma's in afzonderlijke kolommen te scheiden? De gedeelde code converteert het bestand van een .csv naar een .xlsx, maar scheidt de gegevens niet in afzonderlijke kolommen.
Deze opmerking is gemaakt door de moderator op de site
ja het is geen werk.
Deze opmerking is gemaakt door de moderator op de site
goedemorgen metgezellen

Voeg een ander woord toe aan het script, quisiera poder convertir inmediatamente el texto en columnas, door een opción que no es delimitado door ningún tipo de caracter, adicional los tamaños de las columnas son diferentes. Vale la pena aclarar que si tomo cada archive por separado y le aplico la opción de texto en columnas, bajo esa opción los puedo convertir sin problemas, abriéndolos uno por uno, pero si grabo esa macro y le aplico la misma macro een toto usando la opción de "USAR REFERENCIAS RELATIVAS", geen hace el proceso bien, porque el graba las posiciones de la delimitación del archive que uso de ejemplo, pero necesito que lo aplique aplique aplique es decir abri era cada si archivo Het is een handleiding voor de scheidingslijn en er is geen aplique voor de publicatie van de kolommen met identificados en het archief van ejemplo.

Ya inserte esa opcion en este archivo, sin embargo pasa lo que indico en la lineas arriba, solo requiero saber como puedo hacer para aplicar la conversion a cada archive, aplicando la delimitacion del campo como fuera un archief nuevo.


Workbooks.Open bestandsnaam:=xSPath & xCSVFile
ActiveWorkbook.SaveAs Replace(xSPath & xCSVFile, ".csv", ".xlsx", vbTextCompare), xlWorkbookDefault

ESTA PARTE ES LA QUE AGREGUE APPLICANDO EL FORMATO DEL TEXTO A COLUMNAS

StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 1), Array(18 _
, 1), Array (38, 1)), TrailingMinusNumbers:=True
ActiveCell.Cellen.Selecteren
ActiveCell.Cells.EntireColumn.AutoFit
ActiveCell.Offset(1, 0).Bereik("A1").Selecteer
ActiveWorkbook.Opslaan

HASTA AQUI AKKOORD YO

ActiveWorkbook.Close
Windows(xWsheet).Activeren
xCSVFile = Dir

Ringleiding
Application.StatusBar = False
Application.DisplayAlerts = Waar
End Sub

Geen se si me hago explicar bien, pero es mi problema.
Er zijn nog geen reacties geplaatst
Laat uw commentaar
Posten als gast
×
Beoordeel dit bericht:
0   Personages
Voorgestelde locaties

Volg ons

Copyright © 2009 - www.extendoffice.com. | Alle rechten voorbehouden. Aangedreven door ExtendOffice. | Sitemap
Microsoft en het Office-logo zijn handelsmerken of gedeponeerde handelsmerken van Microsoft Corporation in de Verenigde Staten en / of andere landen.
Beschermd door Sectigo SSL