很多时候,您必须将数据从excel文件复制到Word文档。您可以非常轻松地使用宏执行此操作。宏将打开一个新的/现有的Word文档,复制内容,然后保存并关闭Word文档。让我们看看这是如何完成的。

您可以使用的代码是– Option Explicit _Sub CreateNewWordDoc()

Dim i作为整数Dim wrdApp作为对象,wrdDoc作为对象集wrdApp = CreateObject(“ Word.Application”)

wrdApp.Visible = True设置wrdDoc = wrdApp.Documents.Add与wrdDoc对于i = 1到100 .Content.InsertAfter“这里是示例测试行#”和i .Content.InsertParagraphAfter之后i如果Dir(“ B:\ Test \ MyNewWordDoc.docx”)<>“然后杀死“ B:\ Test \ MyNewWordDoc.docx”。另存为(“ B:\ Test \ MyNewWordDoc.docx”)

。用wrdApp.Quit结束结尾。设置wrdDoc = Nothing设置wrdApp = Nothing End Sub_要将上面的代码复制到文件中,请按键盘上的Alt + F11键。在左侧,您将看到Microsoft Excel Objects,右键单击并选择Insert。然后单击Module *将代码复制到右侧的代码窗口中现在让我们看一下代码的工作方式–首先,我们声明所需的变量–i为整数,以将每行从excel文件填充到单词doc时递增然后使用2个对象变量wrdApp和wrdDoc,wrdApp是Word Application对象,而wrdDoc是Word Document对象。

_Set wrdApp = CreateObject(“ Word.Application”)_如果系统中已在运行Word,则_CreateObject_将创建Word的新实例。因此,此行将对象变量wrdApp分配给Word Application,您可以稍后在代码中使用。

_wrdApp.Visible = True_新创建的Word实例在创建时将不可见。要使其可见,您需要设置wrdApp.Visible = True使其可见。

_Set wrdDoc = wrdApp.Documents.Add_我们创建了word应用程序的新实例,但尚未打开空白的word文档。因此,此命令将打开一个新的word文档。对象wrdDoc已经分配给了这个新文档,因此我们可以在以后的代码中使用它。

如果您不想打开新工作簿而是打开现有工作簿,则可以用_Set wrdDoc = wrdApp.Documents.Open(“ B:\ My Documents \ WordDocs \ Doc1.docx”)_替换此行已保存在指定位置的现有Word文档。

_With wrdDoc….End With_这是我们的“ With”循环,它将完全与wrdDoc对象一起使用。一旦打开该循环,就不必在此循环中再次重复文本“ wrdDoc”。您可以直接从点(“。”)

在与wrdDoc有关的任何对象之前。此循环以_End With_语句结束。输入End With语句后,您将无法仅使用“。”引用wrdDoc之后的对象。

_For i = 1到100 .Content.InsertAfter“这里是示例测试行#”&i .Content.InsertParagraphAfter下一个i_这是“ For”循环。它从1到100递增,并且每次递增时,都会插入一行带有“ Here is a example test line#”的文字,然后添加递增编号。然后,插入一个换行符/段落分隔符,以便下一个增量出现在下一行,就像新段落一样。

因此,此过程将重复100次,因为for循环的状态For i = 1到100。这是您将获得的输出–

img2

If Dir(“ B:\ Test \ MyNewWordDoc.docx”)<>“”然后杀死“ B:\ Test \ MyNewWordDoc.docx” _ _ .SaveAs(“ B:\ Test \ MyNewWordDoc.docx”) _.Close_一旦“ For”循环完成,代码将检查文件MyNewWordDoc.docx是否存在。如果存在,则将其删除。然后,将使用相同的名称保存新文件并关闭该文件。

wrdApp.Quit _Set wrdDoc = Nothing设置wrdApp = Nothing_关闭单词应用程序,然后释放所创建的2个对象或将其设置为“ Nothing”,从而释放这些对象所占用的内存。这是整个代码,负责将内容从excel复制到word。

image 48