Υπάρχουν φορές που πρέπει να αντιγράψουμε δεδομένα από ένα έγγραφο word σε ένα αρχείο excel. Μπορούμε να το κάνουμε αυτό πολύ εύκολα με μια μακροεντολή σε όλες τις εκδόσεις του γραφείου. Η μακροεντολή θα ανοίξει ένα υπάρχον / νέο αρχείο excel, θα αντιγράψει τα περιεχόμενα και στη συνέχεια θα αποθηκεύσει και θα κλείσει το αρχείο. Ας δούμε πώς γίνεται αυτό.
Επιλογή ρητή
Sub OpenAndReadWordDoc ()
Dim tString As String
Dim p Όσο καιρό, r Όσο καιρό
Dim wrdApp ως αντικείμενο, wrdDoc ως αντικείμενο
Dim wb Ως βιβλίο εργασίας
Dim trange As Variant
Ρύθμιση wb = Τετράδια εργασίας. Προσθήκη
Με wb.Worksheets (1) .Range ("A1")
.Value = "Περιεχόμενα εγγράφου Word:"
.Font.Bold = True
.Μονάδα. Μέγεθος = 14
. Offset (1,0). Επιλέξτε
Τέλος με
r = 3
Ορισμός wrdApp = CreateObject ("Word.Application")
wrdApp.Visible = True
Ορισμός wrdDoc = wrdApp.Documents.Open ("B: \ Test \ MyNewWordDoc.docx")
Με το wrdDoc
Για p = 1 έως .Παράγραφοι. Αριθμός
Ορισμός trange = .Range (Έναρξη: =. Παράγραφοι (p). Range.Start, _
Τέλος: =. Παράγραφοι (p). Εύρος. Τέλος)
tString = trange.Text
tString = Αριστερά (tString, Len (tString) -1)
Αν Instr (1, tString, ”1”)> 0 Στη συνέχεια
wb. Φύλλα εργασίας (1). Εύρος ("A" & r). Αξία = tString
r = r+1
Τέλος εαν
Επόμενο σελ
.Κλείσε
Τέλος με
wrdApp. Κλείστε
Ορισμός wrdDoc = Τίποτα
Ρύθμιση wrdApp = Τίποτα
wb.Saved = True
Τέλος υπο
Για να αντιγράψετε τον παραπάνω κώδικα στο αρχείο σας,
- Πατήστε Alt + F11 στο πληκτρολόγιο
- Στην αριστερή πλευρά, θα δείτε τα αντικείμενα του Microsoft Excel
- Κάντε δεξί κλικ και επιλέξτε Εισαγωγή
- Στη συνέχεια, κάντε κλικ στην ενότητα
- Αντιγράψτε τον κώδικα στο παράθυρο κωδικών στα δεξιά
Τώρα ας δούμε πώς λειτουργεί αυτός ο κώδικας -
Αρχικά δηλώνουμε τις μεταβλητές που χρειαζόμαστε -tstring ως συμβολοσειρά για τη διατήρηση κειμένου (θα δούμε ποιο κείμενο αργότερα). 2 μεταβλητές "p" & "r" ως μετρητές. Αυτά είναι του «μακρού» τύπου. Στη συνέχεια, έχουμε τις 2 μεταβλητές αντικειμένων wrdApp και wrdDoc. Το wrdApp είναι το αντικείμενο εφαρμογής λέξης και το wrdDoc είναι το αντικείμενο εγγράφου του Word. Το Wb είναι η μεταβλητή του βιβλίου εργασίας μας για το νέο βιβλίο εργασίας που δημιουργείται στον κώδικα. Εάν ανοίγετε ένα υπάρχον βιβλίο εργασίας, μπορείτε να αντιστοιχίσετε αυτήν τη μεταβλητή σε αυτήν. Η τελευταία μεταβλητή είναι ο τύπος μεταβλητής trange, η οποία θα έχει τα περιεχόμενα που πρέπει να μεταφερθούν από τη λέξη doc στο αρχείο excel.
Ρύθμιση wb = Τετράδια εργασίας. Προσθήκη
Αυτό εκχωρεί το νέο βιβλίο εργασίας στη μεταβλητή wb. Εάν δεν θέλετε να προσθέσετε ένα νέο βιβλίο εργασίας αλλά να ανοίξετε ένα υπάρχον βιβλίο εργασίας, τότε μπορείτε να αλλάξετε αυτήν τη γραμμή ως εξής -
Ρύθμιση wb - Workbooks.Open ("B: \ Test \ File1.xlsx")
Με wb.Worksheets (1) .Range ("A1")
.Value = "Περιεχόμενα εγγράφου Word:"
.Font.Bold = True
.Μονάδα. Μέγεθος = 14
. Offset (1,0). Επιλέξτε
Τέλος με
Το With wb.Worksheets (1) .range ("A1") είναι ένας γρήγορος τρόπος αναφοράς του. Επομένως, δεν χρειάζεται να το επαναλάβετε για κάθε μία από τις γραμμές κώδικα μεταξύ των προτάσεων με και με τέλος.
Αυτές οι γραμμές κώδικα τοποθετούνται στο κείμενο "Περιεχόμενα εγγράφου Word:" με έντονη γραμματοσειρά και μέγεθος γραμματοσειράς 14 στο κελί Α1 του 1st φύλλο εργασίας στο νέο βιβλίο εργασίας. Και στη συνέχεια. Offset (1,0). Επιλέξτε επιλέγει την επόμενη σειρά.
r = 3
Στη μεταβλητή "r" εκχωρείται μια τιμή 3 καθώς αυτή είναι η αρχική γραμμή στο αρχείο excel για την αντιγραφή των δεδομένων από το έγγραφο word.
Ορισμός wrdApp = CreateObject ("Word.Application")
Εάν το Word λειτουργεί ήδη στο σύστημά σας,CreateObjectθα δημιουργήσει μια νέα παρουσία του Word. Έτσι, αυτή η γραμμή εκχωρεί τη μεταβλητή αντικειμένου wrdApp στην εφαρμογή Word που μπορείτε να χρησιμοποιήσετε αργότερα στον κώδικα.
wrdApp.Visible = True
Η νέα δημιουργία του Word δεν θα είναι ορατή κατά τη δημιουργία του. Για να το κάνετε ορατό, πρέπει να ορίσετε το wrdApp.Visible = True έτσι ώστε να είναι ορατό.
Ορισμός wrdDoc = wrdApp.Documents.Open ("B: \ Test \ MyNewWordDoc.docx")
Δημιουργήσαμε τη νέα παρουσία της λέξης εφαρμογή, αλλά δεν έχουμε ανοίξει ακόμη ένα έγγραφο προέλευσης λέξης. Αυτή η εντολή θα ανοίξει το έγγραφο word. Το αντικείμενο wrdDoc έχει εκχωρηθεί σε αυτό το έγγραφο, ώστε να μπορούμε να το χρησιμοποιήσουμε αργότερα στον κώδικα.
Με το wrdDoc… .Τέλος με
Αυτός είναι ο βρόχος μας "Με" ο οποίος θα λειτουργεί εξ ολοκλήρου με το αντικείμενο wrdDoc. Μόλις ανοίξετε αυτόν τον βρόχο, δεν χρειάζεται να επαναλάβετε το κείμενο "wrdDoc" ξανά σε αυτόν τον βρόχο. Μπορείτε να ξεκινήσετε απευθείας με την τελεία (".") Πριν από οποιαδήποτε αντικείμενα που σχετίζονται με το wrdDoc. Αυτός ο βρόχος τελειώνει με το Τέλος με δήλωση. Μόλις εισαχθεί η δήλωση Τέλος με, δεν μπορείτε να ανατρέξετε στα αντικείμενα μετά το wrdDoc μόνο με το ".".
Για p = 1 έως .Παράγραφοι. Αριθμός
Αυτός είναι ο βρόχος "For" που θα κάνει βρόχο από το 1st έως τις τελευταίες παραγράφους στο word document. Το αρχείο λέξης που περιέχει τα δεδομένα έχει 100 γραμμές πληροφοριών, κάθε μία αποθηκευμένη ως ξεχωριστή παράγραφος. Ο βρόχος θα αυξηθεί από το 1 στο 100 και θα αντιγράψει τις παραγράφους. Εάν οριστούν ορισμένες προϋποθέσεις, η επικόλληση αντιγράφου θα βασίζεται σε αυτές τις συνθήκες.
Ορισμός trange = .Range (Έναρξη: =. Παράγραφοι (p). Εύρος. Έναρξη, Τέλος: =. Παράγραφοι (p). Εύρος. Τέλος)
Αυτό εκχωρεί την αρχή και το τέλος κάθε παραγράφου σε εύρος όσο αυξάνεται ο βρόχος.
tString = trange.text
tString = Αριστερά (tString, len (tString) -1)
Πρώτα το κείμενο από το trange μεταφέρεται στο TString. Στη συνέχεια, κάθε παράγραφος έχει χαρακτήρα παραγράφου στο τέλος της πρότασης. Αυτό καταργείται χρησιμοποιώντας τη λειτουργία Αριστερά. Από την αριστερή πλευρά, όλοι οι χαρακτήρες εκτός από τον τελευταίο αποθηκεύονται στη μεταβλητή tString.
Εάν Instr (1, tString, "1")> 0 Τότε
wb. Φύλλα εργασίας (1). Εύρος ("A" & r). Αξία = tString
r = r+1
Τέλος εαν
Αυτή η συνάρτηση IF ελέγχει εάν το κείμενο στο tString περιέχει τον αριθμό 1. Εάν είναι αληθές, τότε αντιγράφει τα περιεχόμενα του tString στην επόμενη διαθέσιμη σειρά στο βιβλίο εργασίας. Το "r" είχε αρχικά μια τιμή 3. Χρησιμοποιώντας το r = r+1, το αυξάνουμε κατά 1, έτσι ώστε η επόμενη καταχώρηση να μπορεί να τοποθετηθεί κάτω από την προηγούμενη καταχώρηση.
Επόμενο σελ
.Κλείσε
ο Επόμενο σελ αυξάνει τη γραμμή κώδικα στην επόμενη παράγραφο.
.Κλείσε κλείνει το έγγραφο μόλις δουλέψουν όλες οι παράγραφοι. Αυτή είναι η έξοδος που έχουμε στο αρχείο excel -
Θα δείτε ότι μόνο εκείνες οι παράγραφοι που περιέχουν τον αριθμό 1 οπουδήποτε στον αριθμό περιλαμβάνονται στην έξοδο.
wrdApp. Κλείστε
Ορισμός wrdDoc = Τίποτα
Ρύθμιση wrdApp = Τίποτα
wb.Saved = True
wrdApp.Quit θα κλείσει τη λέξη Εφαρμογή. Ορισμός wrdDoc = Τίποτα και Ρύθμιση wrdApp = Τίποτα δεν θα απελευθερώσει τη μνήμη που έχουν ληφθεί από αυτές τις 2 μεταβλητές αντικειμένων και θα τις ορίσει σε τίποτα. wb.Saved = True θα αποθηκεύσει το βιβλίο εργασίας.
Με τον παραπάνω κώδικα μπορούμε να ελέγξουμε ποια δεδομένα θα αντιγραφούν από αρχείο word σε αρχείο excel.