VBA - 打开word文档,将数据从excel导出到word doc

时间:2017-03-10 13:19:56

标签: excel vba excel-vba if-statement word-vba

我有一点我无法解决的问题。

我编写了VBA代码,将excel中的单元格数据导出到word文本框中。

工作原理: 我在excel文档中有一个按钮,你突出显示你要使用的行,按下它按钮,而不是从我告诉它的所有单元格中获取数据并将它们导入到单词中。

我遇到的问题是,如果我选择另一行并再次按下该按钮,它会再次尝试打开相同的单词doc并且错误已经打开。无论如何,我可以做和如果声明检查它是否打开,如果它没有打开它,如果它是使用活动单词doc?

这是我当前的代码

Set objWord = CreateObject("Word.Application")
objWord.Visible = True
objWord.Documents.Open "C:\Users\swhiston\Desktop\IT Services Invoice.docx"

由于 GreatSc0tt

2 个答案:

答案 0 :(得分:1)

您希望Word对象在模块/类级别声明,并在打开它之前测试它是否已经打开

Option Explicit
Dim objWord As Object
Dim objDoc as Object

Sub OpenWord()

    Set objWord = CreateObject("Word.Application")
    objWord.Visible = True
    set objDoc = objWord.Documents.Open( "C:\Users\swhiston\Desktop\IT Services Invoice.docx")

End Sub


Sub MyCodeHere()

    'Open Word If It's Not Already Open
    If objwork Is Nothing Then OpenWord
    'Your Code Here

End Sub

答案 1 :(得分:0)

每当您尝试执行代码时,它将重新打开同一个文件,因此要么应用检查文件是否打开的条件,如果不是,则只打开文件或每次应该在文件结束时关闭文件你的代码。

你可以参考:Detect whether Excel workbook is already open

将其保留在其他部分:

objWord.Documents.Open "C:\Users\swhiston\Desktop\IT Services Invoice.docx"