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.