Αυτό το σεμινάριο θα δείξει πώς να γράφετε σε αρχεία κειμένου χρησιμοποιώντας VBA.
Γράψτε σε ένα αρχείο κειμένου
Οι παρακάτω κωδικοί χρησιμοποιούν το FileSystemObjectΤο Για να το χρησιμοποιήσετε, θα πρέπει να ορίσετε μια αναφορά στη βιβλιοθήκη χρόνου εκτέλεσης σεναρίων VB.
Γράψτε σε νέο αρχείο κειμένου
Με την CreateTextFile μέθοδος για FileSystemObject μπορείτε να δημιουργήσετε και στη συνέχεια να προσθέσετε περιεχόμενο σε ένα αρχείο κειμένου:
123456789 | Sub FSOCreateAndWriteToTextFile ()Dim FSO ως νέο FileSystemObjectΟρισμός FSO = CreateObject ("Scripting.FileSystemObject")Ορισμός FileToCreate = FSO.CreateTextFile ("C: \ Test \ TestFile.txt")FileToCreate.Write "test line"FileToCreate.CloseΤέλος υπο |
Λάβετε υπόψη ότι το περιεχόμενο δεν θα περικλείεται από εισαγωγικά.
Γράψτε στο υπάρχον αρχείο κειμένου
Για να γράψετε σε ένα υπάρχον αρχείο κειμένου, μπορείτε να χρησιμοποιήσετε το OpenTextFile μέθοδος για FileSystemObject με ΓιαΓράψιμο τρόπος.
123456789 | Υπο FSOWriteToTextFile ()Dim FSO ως νέο FileSystemObjectΟρισμός FSO = CreateObject ("Scripting.FileSystemObject")Ορισμός FileToWrite = FSO.OpenTextFile ("C: \ Test \ TestFile.txt", ForWriting)FileToWrite.Write "δοκιμαστική γραμμή"FileToWrite.CloseΤέλος υπο |
Λάβετε υπόψη ότι δεν χρειάζεται απαραίτητα το FileSystemObject για να γράψετε σε ένα υπάρχον αρχείο κειμένου. Το παραπάνω παράδειγμα εμφανίζεται με άλλο τρόπο σε αυτόν τον παρακάτω κώδικα (δείτε άλλο παράδειγμα στην ενότητα Εύρος δεδομένων σε αρχείο αρχείου):
123456789 | Sub WriteToTextFile ()Dim Name Name ως συμβολοσειράFileName = "C: \ Test \ TestFile.txt"Ανοίξτε το Όνομα αρχείου για έξοδο ως #1Εκτύπωση #1, "γραμμή δοκιμής"Κλείσιμο #1Τέλος υπο |
Λάβετε υπόψη ότι η χρήση της εντολής Γράψτε αντί για Εκτύπωση θα έχει ως αποτέλεσμα το πρόσθετο περιεχόμενο να περικλείεται από εισαγωγικά. Έχοντας και τις δύο εντολές στη μακροεντολή σας
12 | Γράψτε #1, "δοκιμαστική γραμμή #1"Εκτύπωση #1, "δοκιμαστική γραμμή #2" |
θα έχει ως αποτέλεσμα ένα αρχείο κειμένου όπως αυτό:
Προγραμματισμός VBA | Το Code Generator λειτουργεί για εσάς!
Προσθήκη στο αρχείο κειμένου
Αλλάζοντας τη λειτουργία στον παραπάνω κώδικα σε ForAppend, μπορεί να προστεθεί μια γραμμή στο τέλος του αρχείου κειμένου:
1 | Ορισμός FileToWrite = FSO.OpenTextFile ("C: \ Test \ TestFile.txt", ForAppending) |
Μέθοδος WriteLine
Αυτή η μέθοδος προσαρτά τη συμβολοσειρά εισόδου ως ξεχωριστή γραμμή στο υπάρχον περιεχόμενο.
Μέθοδος εγγραφής
Η συμβολοσειρά εισαγωγής προσαρτάται στην ίδια γραμμή με το υπάρχον περιεχόμενο.
Κουραστήκατε να ψάχνετε για παραδείγματα κώδικα VBA; Δοκιμάστε το AutoMacro!
WriteBlankLines
Αυτή η μέθοδος παίρνει τον αριθμό των κενών γραμμών που πρέπει να γραφτούν στο αρχείο κειμένου ως παράμετρος.
Αυτός ο κώδικας παρακάτω απεικονίζει τη διαφορά μεταξύ των διαφορετικών μεθόδων γραφής:
12345678910111213 | Sub WriteMethods ()Dim FSO ως νέο FileSystemObjectΟρισμός FSO = CreateObject ("Scripting.FileSystemObject")Ορισμός FileToWrite = FSO.OpenTextFile ("C: \ Test \ TestFile.txt", ForAppending)FileToWrite.Write "δοκιμαστική γραμμή #1"FileToWrite.Write "δοκιμαστική γραμμή #2"FileToWrite.WriteBlankLines (3)FileToWrite.WriteLine "δοκιμαστική γραμμή #3"FileToWrite.WriteLine "δοκιμαστική γραμμή #4"FileToWrite.CloseΤέλος υπο |
Και το αποτέλεσμα:
Προγραμματισμός VBA | Το Code Generator λειτουργεί για εσάς!
Εύρος δεδομένων σε αρχείο κειμένου
Εάν θέλετε να εξάγετε μια περιοχή δεδομένων από το φύλλο εργασίας σας σε ένα αρχείο κειμένου, μπορείτε να χρησιμοποιήσετε αυτόν τον κωδικό:
12345678910111213141516171819 | Sub OutputToTextFile ()Dim FileName As String, LineText As StringDim MyRange As Range, i, jFileName = "C: \ Test \ TestFile.txt" 'μπορείτε να καθορίσετε εδώ το όνομα αρχείου κειμένου που θέλετε να δημιουργήσετεΑνοίξτε το Όνομα αρχείου για έξοδο ως #1Ορίστε το MyRange = Range ("data") 'υποθέτει ότι έχετε ένα φύλλο δεδομένων με το όνομα "data" στο φύλλο εργασίας σαςΓια i = 1 στο MyRange.Rows.CountΓια j = 1 Προς MyRange.Columns.CountLineText = IIf (j = 1, "", LineText & ",") & MyRange.Cells (i, j) "το αρχείο κειμένου που δημιουργείται θα έχει διαχωριστικό κόμμαΕπόμενο jΕκτύπωση #1, LineText 'χρησιμοποιώντας την εντολή Γράψτε αντί για Εκτύπωση θα έχει ως αποτέλεσμα να έχετε τα δεδομένα σας σε εισαγωγικά στο αρχείο κειμένου εξόδουΕπόμενο iΚλείσιμο #1Τέλος υπο |
Array to Text File
Μπορείτε επίσης να αποθηκεύσετε τον πίνακα δεδομένων σας σε ένα αρχείο κειμένου όπως αυτό:
12345678910111213141516 | Sub SaveArrayToTextFile ()Dim MyArray As VariantDim FSO ως νέο FileSystemObjectΟρισμός FSO = CreateObject ("Scripting.FileSystemObject")MyArray = Array (Array ("00", "01"), Array ("10", "11"), Array ("20", "21"))Ορισμός FileToCreate = FSO.CreateTextFile ("C: \ Test \ TestFile.txt")Για n = 0 προς UBound (MyArray)FileToCreate.WriteLine MyArray (n) (0) & "," & MyArray (n) (1)ΕπόμενοFileToCreate.CloseΤέλος υπο |