Wordi juhtimine Excelist, kasutades Microsoft Excel 2010 VBA -d

Anonim

Mitu korda peate Exceli failist andmed Wordi dokumenti kopeerima. Makroga saate seda väga lihtsalt teha. Makro avab uue / olemasoleva sõna -dokumendi, kopeerib sisu ning salvestab ja sulgeb sõna doc. Vaatame, kuidas seda tehakse.

Kood, mida saate kasutada, on -

Valik Selge

Sub CreateNewWordDoc ()
Dim i As täisarv
Dim wrdApp kui objekt, wrdDoc kui objekt
Määra wrdApp = CreateObject ("Word.Application")
wrdApp.Visible = Tõsi
Määra wrdDoc = wrdApp.Documents.Add
Koos wrdDoc
Kui i = 1 kuni 100
.Content.InsertAfter “Siin on näide testliinist #” & i
.Content.InsertPa bekezdésAfter
Edasi i
Kui Dir ("B: \ Test \ MyNewWordDoc.docx") "" Siis tapa "B: \ Test \ MyNewWordDoc.docx"
.SaveAs ("B: \ Test \ MyNewWordDoc.docx")
.Sulge
Lõpeta
wrdApp. Lõpeta
Määra wrdDoc = Mitte midagi
Määra wrdApp = Mitte midagi
End Sub

Ülaltoodud koodi oma faili kopeerimiseks tehke järgmist.

  • Vajutage klaviatuuril klahve Alt + F11
  • Vasakul näete Microsoft Exceli objekte
  • Paremklõpsake ja valige Lisa
  • Seejärel klõpsake moodulil
  • Kopeerige kood paremal asuvasse koodiaknasse

Nüüd vaatame, kuidas see kood töötab -

Kõigepealt deklareerime muutujad, mida vajame -i, täisarvudena iga rea ​​suurendamiseks, kuna see täidetakse Exceli failist sõnale doc. Siis on kaks objekti muutujat wrdApp ja wrdDoc, wrdApp on Wordi rakenduse objekt ja wrdDoc on Wordi dokumendi objekt.

Määra wrdApp = CreateObject ("Word.Application")

Kui Word teie süsteemis juba töötab,CreateObject loob uue Wordi eksemplari. Seega määrab see rida Wordi rakendusele objekti muutuja wrdApp, mida saate koodi hiljem kasutada.

wrdApp.Visible = Tõsi

Wordi äsja loodud eksemplar pole selle loomisel nähtav. Selle nähtavaks tegemiseks peate määrama wrdApp.Visible = True, nii et see oleks nähtav.

Määra wrdDoc = wrdApp.Documents.Add

Lõime sõnarakenduse uue eksemplari, kuid me pole veel tühja sõna dokumenti avanud. Nii et see käsk avab uue Wordi dokumendi. Sellele uuele dokumendile on määratud objekt wrdDoc, et saaksime seda koodi hiljem kasutada.

Kui te ei soovi avada uut töövihikut, vaid avada olemasoleva töövihiku, saate selle rea asendada

Määra wrdDoc = wrdApp.Documents.Open („B: \ My Documents \ WordDocs \ Doc1.docx”)

See rida avab olemasoleva Wordi dokumendi, mis on salvestatud määratud asukohta.

Koos wrdDoc… .Lõpeta

See on meie tsükkel “With”, mis töötab täielikult koos wrdDoc objektiga. Kui olete selle tsükli avanud, ei pea te selles silmus uuesti teksti “wrdDoc” kordama. Võite alustada punktiga (“.”) Enne mis tahes objekte, mis on seotud wrdDoc -iga. See silmus lõpeb Lõpeta avaldus. Kui lause End With on sisestatud, ei saa objektidele peale wrdDoc viidata ainult “.”.

Kui i = 1 kuni 100
.Content.InsertAfter “Siin on näide testirida #” & i
.Content.InsertPa bekezdésAfter
Edasi i

See on tsükkel “For”. See suureneb vahemikus 1 kuni 100 ja lisab iga sammuga rea ​​tekstiga „Siin on näide testirida #” ja lisab seejärel juurdekasvu numbri. Seejärel lisab see reavahe / lõigu katkestuse, nii et järgmine juurdekasv ilmub järgmisel real nagu uus lõik.

Nii et seda protsessi korratakse 100 korda, kuna silmus olekute korral i = 1 kuni 100. See on väljund, mille saate -

Kui Dir ("B: \ Test \ MyNewWordDoc.Docx") "" Siis tapa "B: \ Test \ MyNewWordDoc.docx"

.SaveAs ("B: \ Test \ MyNewWordDoc.docx")

.Sulge

Kui tsükkel „For” on lõpule jõudnud, kontrollib kood, kas fail MyNewWordDoc.docx on olemas. Kui see juhtub, kustutab see selle. Ja siis salvestab see uue faili sama nimega ja sulgeb faili.

wrdApp. Lõpeta

Määra wrdDoc = Mitte midagi
Määra wrdApp = Mitte midagi

Sõnarakendus suletakse ja seejärel vabastatakse kaks loodud objekti või seatakse need väärtusele „Mitte midagi”, nii et nende objektide hõivatud mälu vabaneb. See on kogu kood, mis hoolitseb sisu kopeerimise eest Excelist Wordi.