Mange gange skal du kopiere data fra en excel -fil til et word -dokument. Du kan meget let gøre dette med en makro. Makroen vil åbne et nyt / eksisterende word doc, kopiere indholdet og derefter gemme og lukke word doc. Lad os se, hvordan dette gøres.
Koden, du kan bruge, er -
Mulighed eksplicit
Sub CreateNewWordDoc ()
Dim i As Integer
Dim wrdApp som objekt, wrdDoc som objekt
Indstil wrdApp = CreateObject (“Word.Application”)
wrdApp.Visible = Sandt
Indstil wrdDoc = wrdApp.Documents.Add
Med wrdDoc
For i = 1 til 100
.Content.InsertAfter "Her er et eksempel på testlinje #" & i
.Content.InsertParagraphAfter
Næste i
Hvis Dir ("B: \ Test \ MyNewWordDoc.docx") "" "Så dræb" B: \ Test \ MyNewWordDoc.docx "
.SaveAs (“B: \ Test \ MyNewWordDoc.docx”)
.Tæt
Afslut med
wrdApp.Afslut
Indstil wrdDoc = Intet
Indstil wrdApp = Intet
Afslut Sub
For at kopiere ovenstående kode til din fil,
- Tryk på Alt + F11 på tastaturet
- På venstre side ser du Microsoft Excel -objekter
- Højreklik og vælg Indsæt
- Klik derefter på modul
- Kopier koden til kodevinduet til højre
Lad os nu se, hvordan denne kode fungerer -
Først deklarerer vi de variabler, vi har brug for -i som heltal for at øge hver række, da den udfyldes fra excel -filen til ordet doc. Derefter er de 2 objektvariabler wrdApp og wrdDoc, wrdApp er Word Application -objektet, og wrdDoc er Word Document -objektet.
Indstil wrdApp = CreateObject (“Word.Application”)
Hvis Word allerede kører i dit system,CreateObject vil oprette en ny forekomst af Word. Så denne linje tildeler objektvariablen wrdApp til Word -applikationen, som du kan bruge senere i koden.
wrdApp.Visible = Sandt
Den nyoprettede forekomst af Word vil ikke være synlig, når den oprettes. For at gøre det synligt skal du indstille wrdApp.Visible = True, så det er synligt.
Indstil wrdDoc = wrdApp.Documents.Add
Vi oprettede den nye forekomst af ordprogrammet, men vi har endnu ikke åbnet et tomt word -dokument. Så denne kommando åbner et nyt word -dokument. Objektet wrdDoc er blevet tildelt dette nye dokument, så vi kan bruge det senere i koden.
Hvis du ikke vil åbne en ny projektmappe, men åbne en eksisterende projektmappe, kan du erstatte denne linje med
Indstil wrdDoc = wrdApp.Documents.Open (“B: \ My Documents \ WordDocs \ Doc1.docx”)
Denne linje åbner et eksisterende word -dokument, som er gemt på det angivne sted.
Med wrdDoc… .Slut med
Dette er vores “With” loop, der udelukkende fungerer med wrdDoc -objektet. Når du har åbnet denne loop, behøver du ikke at gentage teksten “wrdDoc” igen i denne loop. Du kan starte direkte med prikken (“.”) Før objekter, der vedrører wrdDoc. Denne sløjfe slutter med Afslut med udmelding. Når Slut med -sætningen er blevet indtastet, kan du ikke referere til objekterne efter wrdDoc med bare “.”.
For i = 1 til 100
.Content.InsertAfter "Her er et eksempel på testlinje #" & i
.Content.InsertParagraphAfter
Næste i
Dette er "For" -sløjfen. Det øges fra 1 til 100 og ved hvert trin tilføjer det en linje med teksten "Her er et eksempel på testlinje #" og tilføjer derefter trinet. Derefter indsætter det et linjeskift / afsnitskift, så det næste trin vises på den næste linje, ligesom et nyt afsnit.
Så denne proces vil blive gentaget 100 gange, da for -løkken angiver For i = 1 til 100. Dette er output, du får -
Hvis Dir ("B: \ Test \ MyNewWordDoc.Docx") "" "Så dræb" B: \ Test \ MyNewWordDoc.docx "
.SaveAs ("B: \ Test \ MyNewWordDoc.docx")
.Tæt
Når “For” -sløjfen er fuldført, kontrollerer koden, om filen MyNewWordDoc.docx findes. Hvis det gør det, slettes det. Og så gemmer den den nye fil i det samme navn og lukker filen.
wrdApp.Afslut
Indstil wrdDoc = Intet
Indstil wrdApp = Intet
Ordet applikation lukkes, og derefter vil de 2 objekter, der blev oprettet, frigives eller sættes til "Intet", så hukommelsen, der optages af disse objekter, frigives. Dette er hele koden, der sørger for at kopiere indhold fra excel til word.