从excel vba打印word文档

时间:2016-11-30 19:17:05

标签: excel vba excel-vba

以下代码完成后,应该输入一个数字的用户输入(这里硬编码为50,并且不专注于特定的行 - 它不会输入数据);查找工作表中的特定行或行,复制word文档的空白模板,按特定顺序将该数据提供到word文档中,然后打印word文档。

下面的代码是,尝试使用excel将位于C:\ original \ path \ here的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

的CopyFile

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

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

 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

我没有测试它,它可以写得更好,但希望有效。而作为@Wayne G. Dunn,错误是因为您正在尝试复制打开的文件。您可以在此处看到更多 - VBA to copy a file from one directory to another