Γράψτε δεδομένα σε αρχείο κειμένου χρησιμοποιώντας Excel VBA - Εύκολες μακροεντολές Excel

Πίνακας περιεχομένων

Παρακάτω θα δούμε ένα πρόγραμμα στο Excel VBA ότι γράφει ένα εύρος Excel σε ένα αρχείο κειμένου CSV (τιμή-διαχωρισμένη με κόμμα).

Κατάσταση:

Τοποθετήστε ένα κουμπί εντολών στο φύλλο εργασίας σας και προσθέστε τις ακόλουθες γραμμές κώδικα:

1. Αρχικά, δηλώνουμε μια μεταβλητή που ονομάζεται myFile του τύπου String, ένα αντικείμενο που ονομάζεται rng του εύρους τύπου, μια μεταβλητή που ονομάζεται cellValue of type Variant, μια μεταβλητή που ονομάζεται i του τύπου Integer και μια μεταβλητή που ονομάζεται j του τύπου Integer. Χρησιμοποιούμε μια μεταβλητή παραλλαγής εδώ επειδή μια μεταβλητή παραλλαγής μπορεί να κρατήσει οποιοδήποτε τύπο τιμής.

Dim myFile As String, rng As Range, cellValue As Variant, i As Integer, j As Integer

2. Πρέπει να καθορίσουμε την πλήρη διαδρομή και το όνομα αρχείου του αρχείου.

myFile = Application.DefaultFilePath & "\ sales.csv"

Σημείωση: η ιδιότητα DefaultFilePath επιστρέφει την προεπιλεγμένη διαδρομή αρχείου. Για να αλλάξετε την προεπιλεγμένη θέση αρχείου, στην καρτέλα Αρχείο, κάντε κλικ στην επιλογή Επιλογές, Αποθήκευση.

3. Αρχικοποιούμε το αντικείμενο εύρους rng με το επιλεγμένο εύρος.

Ρύθμιση rng = Επιλογή

4. Προσθέστε την ακόλουθη γραμμή κωδικού:

Ανοίξτε το myFile For Output As #1

Σημείωση: αυτή η δήλωση επιτρέπει την εγγραφή του αρχείου. Μπορούμε να αναφέρουμε το αρχείο ως #1 κατά τη διάρκεια του υπόλοιπου κώδικα. Εάν το αρχείο υπάρχει ήδη, θα διαγραφεί και θα δημιουργηθεί ένα νέο αρχείο με το ίδιο όνομα.

5. Ξεκινήστε ένα διπλό βρόχο.

Για i = 1 Προς rng.Rows.Count
Για j = 1 Προς rng.Στήλες.Αριθμός

Σημείωση: rng.Rows.Count επιστρέφει τον αριθμό των γραμμών (17 σε αυτό το παράδειγμα) και rng.Columns.Count επιστρέφει τον αριθμό των στηλών (4 σε αυτό το παράδειγμα).

6. Το Excel VBA γράφει την τιμή ενός κελιού στη μεταβλητή cellValue.

cellValue = rng. Κελιά (i, j). Αξία

7. Προσθέστε τις ακόλουθες γραμμές κώδικα για να γράψετε την τιμή του cellValue στο αρχείο κειμένου.

Εάν j = rng.Στήλες.Αριθμήστε τότε
Γράψτε #1, cellValue
Αλλού
Γράψτε #1, cellValue,
Τέλος εαν

Επεξήγηση: λόγω της δήλωσης If Then Else, το Excel VBA ξεκινά μόνο μια νέα γραμμή (Γράψτε #1, cellValue) όταν το j ισούται με τον αριθμό των στηλών (τελευταία τιμή σε μια σειρά). Για να διαχωρίσετε τις τιμές με κόμμα, χρησιμοποιήστε Γράψτε #1, cellValue, (με κόμμα).

8. Μην ξεχάσετε να κλείσετε και τους δύο βρόχους.

 Επόμενο j
Επόμενο i

9. Κλείστε το αρχείο.

Κλείσιμο #1

10. Επιλέξτε τα δεδομένα και κάντε κλικ στο κουμπί εντολών στο φύλλο.

Αποτέλεσμα:

Θα βοηθήσει στην ανάπτυξη του τόπου, μοιράζονται τη σελίδα με τους φίλους σας

wave wave wave wave wave