Vaak moet u gegevens van een Excel-bestand naar een Word-document kopiëren. Dit doe je heel eenvoudig met een macro. De macro opent een nieuw / bestaand woorddocument, kopieert de inhoud en slaat het woorddocument op en sluit het. Laten we eens kijken hoe dit wordt gedaan.
De code die u kunt gebruiken is -
Optie expliciet
Sub MaakNieuwWoordDoc()
Dim ik als geheel getal
Dim wrdApp als object, wrdDoc als object
Stel wrdApp = CreateObject ("Word.Applicatie") in
wrdApp.Visible = True
Stel wrdDoc = wrdApp.Documents.Add in
Met wrdDoc
Voor i = 1 tot 100
.Content.InsertAfter "Hier is een voorbeeld van testlijn #" & i
.Inhoud.Paragraaf invoegenNa
volgende i
If Dir(“B:\Test\MyNewWordDoc.docx”) “” Kill dan “B:\Test\MyNewWordDoc.docx”
.SaveAs (“B:\Test\MijnNieuweWoordDoc.docx”)
.Dichtbij
Eindigt met
wrdApp.Quit
Stel wrdDoc = Niets in
Stel wrdApp = Niets in
Einde sub
Om de bovenstaande code naar uw bestand te kopiëren,
- Druk op Alt + F11 op het toetsenbord
- Aan de linkerkant ziet u Microsoft Excel Objects
- Klik met de rechtermuisknop en selecteer Invoegen
- Klik vervolgens op Module
- Kopieer de code naar het codevenster aan de rechterkant
Laten we nu eens kijken hoe deze code werkt -
Eerst declareren we de variabelen die we nodig hebben -i als geheel getal om elke rij te verhogen zoals deze wordt ingevuld van het Excel-bestand naar het woord doc. Dan de 2 objectvariabelen wrdApp en wrdDoc, wrdApp is het Word Application-object en wrdDoc is het Word Document-object.
Stel wrdApp = CreateObject ("Word.Applicatie") in
Als Word al in uw systeem draait,Object maken zal een nieuw exemplaar van Word maken. Dus deze regel wijst de objectvariabele wrdApp toe aan de Word-toepassing die u later in de code kunt gebruiken.
wrdApp.Visible = True
Het nieuw gemaakte exemplaar van Word is niet zichtbaar wanneer het wordt gemaakt. Om het zichtbaar te maken, moet je wrdApp.Visible = True instellen zodat het zichtbaar is.
Stel wrdDoc = wrdApp.Documents.Add in
We hebben de nieuwe instantie van de woordtoepassing gemaakt, maar we hebben nog geen leeg Word-document geopend. Deze opdracht opent dus een nieuw Word-document. Het object wrdDoc is toegewezen aan dit nieuwe document zodat we het later in de code kunnen gebruiken.
Als u geen nieuwe werkmap wilt openen maar een bestaande werkmap wilt openen, kunt u deze regel vervangen door
Stel wrdDoc = wrdApp.Documents.Open ("B:\Mijn documenten\WordDocs\Doc1.docx") in
Deze regel opent een bestaand Word-document dat is opgeslagen op de opgegeven locatie.
Met wrdDoc… .Eindig met
Dit is onze "With"-lus die volledig zal werken met het wrdDoc-object. Zodra u deze lus opent, hoeft u de tekst "wrdDoc" niet opnieuw in deze lus te herhalen. U kunt direct beginnen met de punt (“.”) voor objecten die betrekking hebben op wrdDoc. Deze lus eindigt met de Eindigt met uitspraak. Nadat het End With-statement is ingevoerd, kunt u niet meer naar de objecten na wrdDoc verwijzen met alleen de ".".
Voor i = 1 tot 100
.Content.InsertAfter "Hier is een voorbeeld van een testregel #" &i
.Inhoud.Paragraaf invoegenNa
volgende i
Dit is de "For"-lus. Het verhoogt van 1 tot 100 en bij elke stap voegt het een regel in met de tekst "Hier is een voorbeeld testregel #" en voegt vervolgens het stapnummer toe. Vervolgens voegt het een regeleinde / alinea-einde in zodat de volgende stap op de volgende regel verschijnt, zoals een nieuwe paragraaf.
Dit proces wordt dus 100 keer herhaald, omdat de for-lus For i = 1 tot 100 aangeeft. Dit is de uitvoer die u krijgt -
If Dir(“B:\Test\MyNewWordDoc.Docx”) “” Kill dan “B:\Test\MyNewWordDoc.docx”
.SaveAs (“B:\Test\MijnNieuweWoordDoc.docx”)
.Dichtbij
Zodra de "For"-lus is voltooid, controleert de code of het bestand MyNewWordDoc.docx bestaat. Als dit het geval is, wordt het verwijderd. En dan zal het het nieuwe bestand onder dezelfde naam opslaan en het bestand sluiten.
wrdApp.Quit
Stel wrdDoc = Niets in
Stel wrdApp=Niets in
De woordtoepassing wordt gesloten en vervolgens worden de 2 objecten die zijn gemaakt, vrijgegeven of ingesteld op "Niets", zodat het geheugen dat door deze objecten wordt ingenomen, wordt vrijgegeven. Dit is de volledige code die zorgt voor het kopiëren van de inhoud van Excel naar Word.