De multe ori, trebuie să copiați date dintr-un fișier Excel într-un document Word. Puteți face acest lucru cu o macro foarte ușor. Macrocomanda va deschide un cuvânt nou / existent doc, va copia conținutul și apoi va salva și închide cuvântul doc. Să vedem cum se face acest lucru.
Codul pe care îl puteți utiliza este -
Opțiune explicită
Sub CreateNewWordDoc ()
Dim i Integer
Dim wrdApp Ca obiect, wrdDoc ca obiect
Setați wrdApp = CreateObject („Word.Application”)
wrdApp.Visible = Adevărat
Setați wrdDoc = wrdApp.Documents.Add
Cu wrdDoc
Pentru i = 1 până la 100
.Content.InsertAfter „Iată un exemplu de linie de test #” & i
.Content.InsertParagraphAfter
Apoi eu
Dacă Dir („B: \ Test \ MyNewWordDoc.docx”) „” Apoi ucideți „B: \ Test \ MyNewWordDoc.docx”
.SaveAs („B: \ Test \ MyNewWordDoc.docx”)
.Închide
Se termina cu
wrdApp.Quit
Set wrdDoc = Nimic
Set wrdApp = Nimic
Sfârșitul Sub
Pentru a copia codul de mai sus în fișierul dvs.,
- Apăsați Alt + F11 pe tastatură
- În partea stângă, veți vedea Microsoft Excel Objects
- Faceți clic dreapta și selectați Inserați
- Apoi faceți clic pe Modul
- Copiați codul în fereastra de cod din dreapta
Acum să vedem cum funcționează acest cod -
Mai întâi declarăm variabilele de care avem nevoie -i ca număr întreg pentru a crește fiecare rând pe măsură ce este populat din fișierul Excel în cuvântul doc. Apoi cele 2 variabile de obiect wrdApp și wrdDoc, wrdApp este obiectul Word Application și wrdDoc este obiectul Word Document.
Setați wrdApp = CreateObject („Word.Application”)
Dacă Word rulează deja în sistemul dvs.,CreateObject va crea o nouă instanță de Word. Deci, această linie atribuie variabila obiect wrdApp aplicației Word pe care o puteți utiliza mai târziu în cod.
wrdApp.Visible = Adevărat
Instanța Word recent creată nu va fi vizibilă atunci când este creată. Pentru a-l face vizibil, trebuie să setați wrdApp.Visible = True astfel încât să fie vizibil.
Setați wrdDoc = wrdApp.Documents.Add
Am creat noua instanță a aplicației Word, dar nu am deschis încă un document Word gol. Deci, această comandă va deschide un nou document Word. Obiectul wrdDoc a fost atribuit acestui nou document, astfel încât să îl putem folosi mai târziu în cod.
În cazul în care nu doriți să deschideți un registru de lucru nou, ci să deschideți un registru de lucru existent, atunci puteți înlocui această linie cu
Setați wrdDoc = wrdApp.Documents.Open („B: \ Documentele mele \ WordDocs \ Doc1.docx”)
Această linie deschide un document Word existent care a fost salvat la locația specificată.
Cu wrdDoc… .Încheiere cu
Aceasta este bucla noastră „With” care va funcționa în întregime cu obiectul wrdDoc. Odată ce ați deschis această buclă, nu trebuie să repetați din nou textul „wrdDoc” în această buclă. Puteți începe direct cu punctul („.”) Înainte de orice obiecte legate de wrdDoc. Această buclă se termină cu Se termina cu afirmație. Odată ce a fost introdusă instrucțiunea End With, nu puteți face referire la obiecte după wrdDoc doar cu „.”.
Pentru i = 1 până la 100
.Content.InsertAfter „Iată un exemplu de linie de test #” & i
.Content.InsertParagraphAfter
Apoi eu
Aceasta este bucla „Pentru”. Crește de la 1 la 100 și la fiecare increment, introduce o linie cu textul „Iată un exemplu de linie de testare #” și apoi adaugă numărul de creștere. Apoi introduce o întrerupere de linie / întrerupere de paragraf, astfel încât următoarea creștere să apară pe următoarea linie, ca un nou paragraf.
Deci acest proces va fi repetat de 100 de ori, deoarece stările buclă for Pentru i = 1 până la 100. Aceasta este ieșirea pe care o veți obține -
Dacă Dir („B: \ Test \ MyNewWordDoc.Docx”) „” Apoi ucideți „B: \ Test \ MyNewWordDoc.docx”
.SaveAs („B: \ Test \ MyNewWordDoc.docx”)
.Închide
Odată ce bucla „Pentru” este completă, codul va verifica dacă fișierul MyNewWordDoc.docx există. În caz contrar, îl va șterge. Și apoi va salva noul fișier cu același nume și va închide fișierul.
wrdApp.Quit
Set wrdDoc = Nimic
Set wrdApp = Nimic
Cuvântul aplicație este închis și apoi cele 2 obiecte care au fost create vor fi eliberate sau setate la „Nimic”, astfel încât memoria ocupată de aceste obiecte să fie eliberată. Acesta este întregul cod care se ocupă de copierea conținutului din Excel în cuvânt.