Αυτό το σεμινάριο θα δείξει πώς να διαβάζετε περιεχόμενο από αρχεία κειμένου και να το επικολλάτε σε φύλλα εργασίας με VBA.
Διαβάστε το περιεχόμενο αρχείου κειμένου στο φύλλο εργασίας
Ο απλούστερος τρόπος ανάγνωσης του περιεχομένου ενός αρχείου κειμένου είναι η αντιγραφή του στο κελί ενός φύλλου εργασίας.
123456789101112 | Sub FSOPasteTextFileContent ()Dim FSO ως νέο FileSystemObjectΟρισμός FSO = CreateObject ("Scripting.FileSystemObject")Ορίστε FileToRead = FSO.OpenTextFile ("C: \ Test \ TestFile.txt", ForReading) "προσθέστε εδώ τη διαδρομή του αρχείου κειμένου σαςTextString = FileToRead.ReadAllFileToRead.CloseThisWorkbook.Sheets (1) .Range ("A1"). Value = TextString 'μπορείτε να καθορίσετε το φύλλο εργασίας και το κελί όπου θα επικολλήσετε το περιεχόμενο του αρχείου κειμένουΤέλος υπο |
Ο παραπάνω κώδικας χρησιμοποιεί το FileSystemObject. Για να το χρησιμοποιήσετε, θα πρέπει να ορίσετε μια αναφορά στη βιβλιοθήκη χρόνου εκτέλεσης σεναρίων VB. Δείτε εδώ για περισσότερες πληροφορίες.
Χωρίς τη χρήση του FileSystemObject, μπορείτε να επικολλήσετε το περιεχόμενο του αρχείου κειμένου σας με τον παρακάτω κώδικα. Εάν το αρχείο κειμένου σας περιέχει διαχωριστικό γραμμής, θα επικολληθεί γραμμή προς γραμμή.
123456789101112 | Sub PasteTextFileContent ()Dim wbExcel Ως βιβλίο εργασίας, wbText ως βιβλίο εργασίαςDim wsExcel Ως φύλλο εργασίαςΟρισμός wbExcel = ThisWorkbook «καθορίστε εδώ σε ποιο αρχείο Excel πρόκειται να επικολληθεί το περιεχόμενο του αρχείου κειμένουΟρίστε wsExcel = wbExcel.Sheets (1) 'καθορίστε εδώ ποιο φύλλο εργασίας θα χρησιμοποιήσετεΟρισμός wbText = Workbooks.Open ("C: \ Test \ TestFile.txt") 'προσθέστε εδώ τη διαδρομή του αρχείου κειμένουwbText.Sheets (1) .Cells.Copy wsExcel.CellswbText.Close SaveChanges: = ΛάθοςΤέλος υπο |
Ανάγνωση περιεχομένου αρχείου κειμένου γραμμή προς γραμμή, στήλη ανά στήλη
Το αρχείο κειμένου σας μπορεί να έχει πολλές σειρές και πολλά στοιχεία που παρατίθενται στις γραμμές διαχωρισμένες με κόμμα, ερωτηματικό, καρτέλα, κενό, κλπ … Για να διαβάσετε και να επικολλήσετε σωστά το περιεχόμενο του αρχείου κειμένου, μπορεί να χρειαστείτε αυτόν τον κωδικό παρακάτω:
1234567891011121314151617181920212223242526 | Sub PasteTextFileContentWithSeparators ()Dim StrLine As StringDim FSO ως νέο FileSystemObjectDim TSO ως αντικείμενοDim StrLineElements As VariantDim Index As LongDim i As LongDim Delimiter ως συμβολοσειράΟρισμός 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) .Value = StrLineElements (i) 'αυτός ο κώδικας θα ξεκινήσει να επικολλά το περιεχόμενο του αρχείου κειμένου από το κελί A1 (Κελί (1,1)) του ενεργού φύλλου εργασίαςΕπόμενο iΕυρετήριο = Ευρετήριο + 1ΒρόχοςΔΣΜ. ΚλείσιμοΤέλος υπο |
Ο οριοθέτης που χρησιμοποιείται στο αρχείο κειμένου σας μπορεί να είναι κόμμα (","), κόμμα με κενό (","), ερωτηματικό (";"), ερωτηματικό με κενό (";"), κενό (""), καρτέλα (αλλάξτε τότε Delimiter = vbTab) ή σε σπάνιες περιπτώσεις οποιονδήποτε άλλο χαρακτήρα.
Διαβάστε αρχεία κειμένου σε πίνακες
Εάν πρέπει να διαβάσετε το περιεχόμενο του αρχείου κειμένου σε έναν πίνακα και η επικόλληση είναι γραμμή προς γραμμή, στήλη προς στήλη στο φύλλο εργασίας σας, θα χρειαστείτε αυτόν τον κωδικό παρακάτω:
12345678910111213141516171819202122232425262728293031323334 | Sub ReadDelimitedTextFileIntoArray ()Dim Delimiter As StringDim TextFile ως ακέραιοςDim FilePath As StringDim FileContent As StringDim LineArray () As StringDim DataArray () Ως συμβολοσειράDim TempArray () Ως συμβολοσειράDim rw As Long, col As LongDelimiter = vbTab 'το όριο που χρησιμοποιείται στο αρχείο κειμένου σαςFilePath = "C: \ Test \ TestFileTab.txt"rw = 1TextFile = FreeFileΑνοίξτε το FilePath για εισαγωγή ως TextFileFileContent = Εισαγωγή (LOF (TextFile), TextFile)Κλείσιμο TextFileLineArray () = Split (FileContent, vbNewLine) 'αλλαγή vbNewLine σε vbCrLf ή vbLf ανάλογα με το διαχωριστικό γραμμής που χρησιμοποιείται στο αρχείο κειμένουΓια x = LBound (LineArray) To UBound (LineArray)Αν Len (Περικοπή (LineArray (x))) 0 ΤότεTempArray = Split (LineArray (x), Delimiter)col = UBound (TempArray)ReDim Preserve DataArray (col, rw)Για y = LBound (TempArray) Προς UBound (TempArray)DataArray (y, rw) = TempArray (y)Κελιά (x + 1, y + 1). Value = DataArray (y, rw) 'αυτός ο κώδικας θα αρχίσει να επικολλά το περιεχόμενο του αρχείου κειμένου από το κελί A1 (Cell (1,1)) του ενεργού φύλλου εργασίαςΕπόμενο yΤέλος εανrw = rw + 1Επόμενο xΤέλος υπο |
Οι διαχωριστές γραμμών στο αρχείο κειμένου σας μπορούν να είναι συνδυασμός επιστροφής μεταφοράς και τροφοδοσίας γραμμής (Chr (13)+Chr (10)) ή γραμμής τροφοδοσίας (Chr (10)). Χρησιμοποιήστε vbCrLf ή vbLf, ανάλογα. Εάν δεν είστε σίγουροι, χρησιμοποιήστε το vbNewLine για να υποδείξετε το διαχωριστικό γραμμής.