VBA - Διαβάστε το αρχείο κειμένου γραμμή προς γραμμή

Αυτό το σεμινάριο θα δείξει πώς να διαβάζετε περιεχόμενο από αρχεία κειμένου γραμμή προς γραμμή με το VBA.

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

Διαβάστε το αρχείο κειμένου γραμμή προς γραμμή

Το κείμενο σε ένα αρχείο κειμένου αποτελείται συνήθως από πολλές γραμμές, χωρισμένες με οριοθέτες. Αυτά μπορεί να είναι ένα κόμμα (","), ένα κόμμα με κενό (","), ένα ερωτηματικό (";"), ένα ερωτηματικό με κενό (";"), ένα κενό (""), μια καρτέλα (vbTab ) ή σε σπάνιες περιπτώσεις οποιοσδήποτε άλλος χαρακτήρας, όπως μια tilde (). Οι γραμμές χωρίζονται κανονικά με διακοπή γραμμής (vbCRLF).

Ο ευκολότερος τρόπος για να διαβάσετε ένα αρχείο κειμένου γραμμή προς γραμμή στο φύλλο εργασίας μας στο VBA είναι να επιλέξετε το πρώτο κελί στο οποίο θέλουμε να τοποθετηθεί το κείμενο και, στη συνέχεια, να εκτελέσετε τον ακόλουθο κώδικα:

1234567891011 Υποδιαβάσιμο αρχείο ()Dim strFile As String, strLine As StringstrFile = "C: \ Test \ TestFile.txt"Ανοίξτε το strFile για είσοδο ως #1Κάντε μέχρι τον EOF (1)Γραμμή εισαγωγής #1, strLineActiveCell = strLineActiveCell.Offset (1, 0). ΕπιλέξτεΒρόχοςΚλείσιμο #1Τέλος υπο

Αυτό θα τοποθετήσει κάθε γραμμή του αρχείου κειμένου σε ένα κελί στο Excel.

Μπορούμε επίσης να διαβάσουμε ένα αρχείο κειμένου σε VBA χρησιμοποιώντας το FileSystemObject. Στον παρακάτω κώδικα χρησιμοποιήσαμε την καθυστερημένη δέσμευση με το αντικείμενο συστήματος συστήματος. Μπορείτε επίσης να δημιουργήσετε μια αναφορά σε αυτό στο έργο σας VBA. Δείτε εδώ για περισσότερες πληροφορίες.

123456789101112131415 Sub ReadTextFile ()Dim strLine As StringDim FSO ως αντικείμενοDim TSO Ως αντικείμενοΟρισμός FSO = CreateObject ("Scripting.FileSystemObject")Ορισμός TSO = FSO.OpenTextFile ("C: \ Test \ TestFile.txt")Κάνετε ενώ δεν είναι TSO.AtEndOfStreamstrLine = TSO.ReadLineActiveCell = strLineActiveCell.Offset (1, 0). ΕπιλέξτεΒρόχοςΔΣΜ. ΚλείσιμοΟρισμός ΔΣΜ = ΤίποταΡύθμιση FSO = ΤίποταΤέλος υπο

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

123456789101112131415161718192021222324 Sub ReadTextFileWithSeparators ()Dim StrLine As StringDim FSO ως νέο FileSystemObjectDim TSO Ως αντικείμενοDim StrLineElements As VariantDim Index As LongDim i As LongDim Delimiter As StringΟρισμός FSO = CreateObject ("Scripting.FileSystemObject")Ορισμός TSO = FSO.OpenTextFile ("C: \ Test \ TestFile.txt")Οριοθέτης = ","Ευρετήριο = 1Do while TSO.AtEndOfStream = ΛάθοςStrLine = TSO.ReadLineStrLineElements = Split (StrLine, Delimiter)Για i = LBound (StrLineElements) To UBound (StrLineElements)Κελιά (Ευρετήριο, i + 1). Αξία = Στοιχεία StrLine (i)Επόμενο iΕυρετήριο = Ευρετήριο + 1ΒρόχοςΔΣΜ. ΚλείσιμοΟρισμός ΔΣΜ = ΤίποταΡύθμιση FSO = ΤίποταΤέλος υπο

Αυτό θα έχει ως αποτέλεσμα οι γραμμές να χωρίζονται σε μεμονωμένα κελιά στο Excel σύμφωνα με το παρακάτω γράφημα.

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

wave wave wave wave wave