Note: The other languages of the website are Google-translated. Back to English
Σύνδεση  \/ 
x
or
x
Εγγραφή  \/ 
x

or

Πώς να μετατρέψετε πολλά αρχεία Excel σε αρχεία CSV στο Excel;

Στο Excel, μπορούμε να μετατρέψουμε το βιβλίο εργασίας σε αρχείο CSV με τη λειτουργία Αποθήκευση ως, αλλά θα μπορούσατε να μάθετε πώς να μετατρέψετε μαζικά πολλά αρχεία Excel σε διαχωρισμό αρχείων CSV; Σε αυτό το άρθρο, εισάγω έναν κώδικα VBA για τη μετατροπή παρτίδων όλων των αρχείων Excel σε ένα φάκελο σε αρχεία CSV στο Excel.

Μαζική μετατροπή αρχείων Excel ενός φακέλου σε αρχεία CSV με VBA

Μετατροπή φύλλων βιβλίου εργασίας σε ξεχωριστά αρχεία CSV με το Kutools για Excelκαλή ιδέα3


Μαζική μετατροπή αρχείων Excel ενός φακέλου σε αρχεία CSV με VBA

Στο Excel, δεν υπάρχει ενσωματωμένη λειτουργία που μπορεί να λύσει αυτήν την εργασία γρήγορα εκτός από το VBA.

1. Ενεργοποιήστε το Excel και πατήστε Alt + F11 ανοίγουν τα κλειδιά Microsoft Visual Basic για εφαρμογές παράθυρο.

2. κλικ Κύριο θέμα > Μονάδα μέτρησης για να δημιουργήσετε μια νέα ενότητα.

3. Αντιγράψτε τον παρακάτω κώδικα και επικολλήστε τους στο νέο παράθυρο Module.

VBA: Μαζική μετατροπή αρχείων Excel σε 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. Τύπος F5 κλειδί, επιλέξτε το φάκελο που περιέχει τα αρχεία Excel που θέλετε να μετατρέψετε σε αρχεία CSV στο πρώτο παράθυρο διαλόγου.
doc batch στο csv 1

5. κλικ OKκαι, στη συνέχεια, στο δεύτερο παράθυρο διαλόγου, επιλέξτε το φάκελο για να τοποθετήσετε τα αρχεία CSV.
doc batch στο csv 2

6. κλικ OK, τώρα τα αρχεία Excel στο φάκελο έχουν μετατραπεί σε αρχεία CSV και αποθηκεύονται σε άλλο φάκελο.
doc batch στο csv 3


Μετατροπή φύλλων βιβλίου εργασίας σε ξεχωριστά αρχεία CSV με το Kutools για Excel

Όπως γνωρίζαμε, μπορούμε να μετατρέψουμε ολόκληρο το βιβλίο εργασίας σε ένα αρχείο CSV στο Excel με τη λειτουργία Save As. Αλλά σε ορισμένες περιπτώσεις, θέλετε να μετατρέψετε το μεμονωμένο φύλλο σε αρχείο CSV, σε αυτήν την περίπτωση, το Διαχωρισμός βιβλίου εργασίας χρησιμότητα του Kutools για Excel μπορεί να σας βοηθήσει.

Kutools για Excel, με περισσότερα από 300 εύχρηστες λειτουργίες, διευκολύνει τις εργασίες σας. 

Μετά την εγκατάσταση Kutools για Excel, κάντε τα παρακάτω:(Δωρεάν λήψη Kutools για Excel τώρα!)

1. Ενεργοποιήστε το βιβλίο εργασίας που θέλετε να μετατρέψετε τα φύλλα του ως ξεχωριστά αρχεία CSV, κάντε κλικ στο Kutools Plus > Βιβλίο εργασίας > Διαχωρισμός βιβλίου εργασίας.
doc batch στο csv 4

2. Στο Διαχωρισμός βιβλίου εργασίας διαλόγου, ελέγξτε το όνομα του φύλλου που θέλετε να διαχωρίσετε (όλα τα φύλλα ελέγχονται από προεπιλογή), ελέγξτε Αποθήκευση ως πληκτρολογήστε, επιλέξτε CSV (Macintosh) (* .CSV) από την αναπτυσσόμενη λίστα.
doc batch στο csv 5

3. κλικ Σπλιτ για να βγει ένα α Αναζήτηση φακέλου διαλόγου, επιλέξτε ή δημιουργήστε ένα φάκελο για να τοποθετήσετε τα αρχεία CSV.
doc batch στο csv 6

4. κλικ OK, τώρα το βιβλίο εργασίας έχει χωριστεί ως ξεχωριστά αρχεία CSV.
doc batch στο csv 7


Τα καλύτερα εργαλεία παραγωγικότητας του Office

Το Kutools για Excel λύνει τα περισσότερα από τα προβλήματά σας και αυξάνει την παραγωγικότητά σας κατά 80%

  • Επαναχρησιμοποίηση: Εισαγάγετε γρήγορα σύνθετοι τύποι, γραφήματα και οτιδήποτε έχετε χρησιμοποιήσει στο παρελθόν. Κρυπτογράφηση κυττάρων με κωδικό πρόσβασης Δημιουργία λίστας αλληλογραφίας και στείλτε email ...
  • Super Formula Bar (επεξεργαστείτε εύκολα πολλές γραμμές κειμένου και τύπου). Διάταξη ανάγνωσης (εύκολη ανάγνωση και επεξεργασία μεγάλου αριθμού κελιών). Επικόλληση σε φιλτραρισμένο εύρος...
  • Συγχώνευση κελιών / σειρών / στηλών χωρίς απώλεια δεδομένων · Περιεχόμενο διαχωρισμού κελιών Συνδυάστε διπλές σειρές / στήλες... Αποτροπή διπλών κυττάρων; Συγκρίνετε τα εύρη...
  • Επιλέξτε Διπλότυπο ή Μοναδικό Σειρές; Επιλέξτε Κενές σειρές (όλα τα κελιά είναι κενά). Σούπερ εύρεση και ασαφής εύρεση σε πολλά βιβλία εργασίας. Τυχαία επιλογή ...
  • Ακριβές αντίγραφο Πολλαπλά κελιά χωρίς αλλαγή της αναφοράς τύπου. Αυτόματη δημιουργία αναφορών σε πολλαπλά φύλλα? Εισαγωγή κουκκίδων, Πλαίσια ελέγχου και άλλα ...
  • Εξαγωγή κειμένου, Προσθήκη κειμένου, Κατάργηση κατά θέση, Αφαιρέστε το διάστημα; Δημιουργία και εκτύπωση υποσύνολων σελιδοποίησης. Μετατροπή περιεχομένου και σχολίων μεταξύ κελιών...
  • Σούπερ φίλτρο (αποθηκεύστε και εφαρμόστε σχήματα φίλτρων σε άλλα φύλλα). Προηγμένη ταξινόμηση ανά μήνα / εβδομάδα / ημέρα, συχνότητα και άλλα. Ειδικό φίλτρο με έντονη, πλάγια ...
  • Συνδυάστε βιβλία εργασίας και φύλλα εργασίας; Συγχώνευση πινάκων βάσει βασικών στηλών. Διαχωρίστε τα δεδομένα σε πολλά φύλλα; Μαζική μετατροπή xls, xlsx και PDF...
  • Περισσότερα από 300 ισχυρά χαρακτηριστικά. Υποστηρίζει Office / Excel 2007-2019 και 365. Υποστηρίζει όλες τις γλώσσες. Εύκολη ανάπτυξη στην επιχείρηση ή τον οργανισμό σας. Πλήρεις δυνατότητες δωρεάν δοκιμής 30 ημερών. Εγγύηση επιστροφής χρημάτων 60 ημερών.
kte καρτέλα 201905

Το Office Tab φέρνει τη διεπαφή με καρτέλες στο Office και κάνει την εργασία σας πολύ πιο εύκολη

  • Ενεργοποίηση επεξεργασίας και ανάγνωσης καρτελών σε Word, Excel, PowerPoint, Publisher, Access, Visio και Project.
  • Ανοίξτε και δημιουργήστε πολλά έγγραφα σε νέες καρτέλες του ίδιου παραθύρου και όχι σε νέα παράθυρα.
  • Αυξάνει την παραγωγικότητά σας κατά 50% και μειώνει εκατοντάδες κλικ ποντικιού για εσάς κάθε μέρα!
κάτω μέρος γραφείου
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.
    TBenson85 · 9 days 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 · 8 days 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 · 1 months ago
    This is amazing. Thank-you!
  • To post as a guest, your comment is unpublished.
    wilfried · 2 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 · 1 years ago
      Have you found a way around this issue?
      • To post as a guest, your comment is unpublished.
        Clara · 1 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 !!