从excel vba打印word文档

下面的代码,完成后,应该得到一个数字的用户input(这里它的硬编码为50,不专注于一个特定的行 – 它没有喂养的数据)。 在工作表中查找特定的一行或多行,复制单词文档的空白模板,将数据以特定顺序input到单词文档中,然后打印单词文档。

下面的代码是使用excel,将位于C:\ original \ path \的word文档复制到C:\ original \ path \目录下。 不幸的是,每次我尝试在Microsoft Excel中运行这个,Excel挂起,然后我不得不重新启动它。

所以为什么? 需要做什么? Microsoft Word对象库14在VBA编辑器中被引用。

Sub UpdateActionsRows() Dim userInput As Long userInput = 50 ' set up word application, document Dim objWord As Word.Application Dim objDoc As Document Set objWord = CreateObject("Word.Application") Set objDoc = objWord.Documents.Open("C:\original\path\here") copyFile objDoc, userInput objDoc.Close objWord.Quit End Sub 

复制文件

 Function copyFile(sourceFile As Document, inputRows As Long) Dim fso As Object Set fso = VBA.CreateObject("Scripting.FileSystemObject") Dim targetFile As String targetFile = "C:\original\file\there.docx" fso.copyFile sourceFile, targetFile End Function 

尝试这样的事情:

  Sub UpdateActionsRows() Dim userInput As Long userInput = 50 ' set up word application, document Dim objWord As Word.Application Dim objDoc As Document Set objWord = CreateObject("Word.Application") Set objDoc = objWord.Documents.Open("C:\original\path\here") objDoc.Close FileCopy objDoc, "C:\original\path\there" objWord.Quit End Sub 

我没有testing它,它可以写得更好,但希望工程。 作为@Wayne G. Dunn,错误是因为您正在尝试复制已打开的文件。 在这里您可能会看到更多 – VBA将文件从一个目录复制到另一个目录