Ovládejte Word z Excelu pomocí VBA v Microsoft Excel 2010

Anonim

Mnohokrát musíte zkopírovat data ze souboru aplikace Excel do dokumentu aplikace Word. S makrem to zvládnete velmi snadno. Makro otevře nový / existující dokument Word, zkopíruje obsah a poté uloží a zavře slovo doc. Podívejme se, jak se to dělá.

Kód, který můžete použít, je -

Možnost Explicitní

Sub CreateNewWordDoc ()
Dim i As Integer
Dim wrdApp jako objekt, wrdDoc jako objekt
Nastavit wrdApp = CreateObject („Word.Application“)
wrdApp.Visible = True
Nastavit wrdDoc = wrdApp.Documents.Add
S wrdDoc
Pro i = 1 až 100
.Content.InsertAfter „Zde je příklad testovacího řádku #“ & i
.Content.InsertParagraphAfter
Příště já
Pokud Dir („B: \ Test \ MyNewWordDoc.docx“) „“ Pak zabijte „B: \ Test \ MyNewWordDoc.docx“
.SaveAs („B: \ Test \ MyNewWordDoc.docx“)
.Zavřít
Konec s
wrdApp.Quit
Nastavit wrdDoc = Nic
Nastavit wrdApp = Nic
End Sub

Chcete -li výše uvedený kód zkopírovat do souboru,

  • Stiskněte Alt + F11 na klávesnici
  • Na levé straně uvidíte objekty aplikace Microsoft Excel
  • Klikněte pravým tlačítkem a vyberte Vložit
  • Poté klikněte na Modul
  • Zkopírujte kód do okna kódu vpravo

Nyní se podívejme, jak tento kód funguje -

Nejprve deklarujeme proměnné, které potřebujeme -i jako celočíselné, aby se každý řádek zvýšil, protože je naplněn ze souboru aplikace Excel do slova doc. Potom 2 objektové proměnné wrdApp a wrdDoc, wrdApp je objekt aplikace Word a wrdDoc je objekt dokumentu Word.

Nastavit wrdApp = CreateObject („Word.Application“)

Pokud je již Word ve vašem systému spuštěn,CreateObject vytvoří novou instanci aplikace Word. Tento řádek tedy přiřadí objektovou proměnnou wrdApp aplikaci Word, kterou můžete použít později v kódu.

wrdApp.Visible = True

Nově vytvořená instance aplikace Word nebude při vytváření viditelná. Aby byla viditelná, musíte nastavit wrdApp.Visible = True, aby byla viditelná.

Nastavit wrdDoc = wrdApp.Documents.Add

Vytvořili jsme novou instanci aplikace Word, ale dosud jsme neotevřeli prázdný dokument aplikace Word. Tento příkaz tedy otevře nový dokument aplikace Word. K tomuto novému dokumentu byl přiřazen objekt wrdDoc, abychom jej mohli použít později v kódu.

Pokud nechcete otevřít nový sešit, ale otevřít existující sešit, můžete tento řádek nahradit

Nastavit wrdDoc = wrdApp.Documents.Open („B: \ My Documents \ WordDocs \ Doc1.docx“)

Tento řádek otevře existující dokument aplikace Word, který byl uložen na určené místo.

S wrdDoc…. Konec s

Toto je naše smyčka „With“, která bude zcela fungovat s objektem wrdDoc. Jakmile tuto smyčku otevřete, nemusíte v této smyčce znovu opakovat text „wrdDoc“. Můžete začít přímo tečkou („.“) Před objekty souvisejícími s wrdDoc. Tato smyčka končí znakem Konec s tvrzení. Jakmile zadáte příkaz End With, nemůžete na objekty za wrdDoc odkazovat pouhým „.“.

Pro i = 1 až 100
.Content.InsertAfter „Zde je příklad testovacího řádku #“ & i
.Content.InsertParagraphAfter
Příště já

Toto je smyčka „Pro“. Zvyšuje se od 1 do 100 a při každém přírůstku vloží řádek s textem „Zde je příklad testovacího řádku #“ a poté přidá číslo přírůstku. Poté vloží konec řádku / konec odstavce, aby se na dalším řádku objevil další přírůstek, jako nový odstavec.

Tento proces se tedy bude opakovat 100krát, protože stavy smyčky for pro i = 1 až 100. Toto je výstup, který získáte -

Pokud Dir („B: \ Test \ MyNewWordDoc.Docx“) „“ “Pak zabijte„ B: \ Test \ MyNewWordDoc.docx “

.SaveAs („B: \ Test \ MyNewWordDoc.docx“)

.Zavřít

Jakmile je smyčka „For“ dokončena, kód zkontroluje, zda soubor MyNewWordDoc.docx existuje. Pokud ano, smaže se. A pak uloží nový soubor pod stejným názvem a zavře soubor.

wrdApp.Quit

Nastavit wrdDoc = Nic
Nastavit wrdApp = Nic

Aplikace Word se zavře a poté se 2 vytvořené objekty uvolní nebo nastaví na „Nic“, aby se uvolnila paměť obsazená těmito objekty. Toto je celý kód, který se stará o kopírování obsahu z Excelu do Wordu.