我有一点我无法解决的问题。
我编写了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
答案 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"