GreatSc0tt
GreatSc0tt

Reputation: 11

VBA - Opening word document to export data from excel to word doc

I have a little bit of an issue that i can't solve.

I have programmed VBA code to export cell data from excel into word textboxes.

How it works: I have a button in the excel doc you highlight the row you want to work with you press the button it than grabs the data from all the cells i have told it to and imports them into word.

The problem i am having that is if I select another row and press the button again it tries to open that same word doc again and errors as it is already open. Is there anyway i can do and if statement to check to see if its open if its not open it and if it is use the active word doc?

here is my current code

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

Thanks GreatSc0tt

Upvotes: 1

Views: 528

Answers (2)

Jiminy Cricket
Jiminy Cricket

Reputation: 1377

You want the Word object to by declared at Module/Class level and test whether or not it's already open before you open it

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

Upvotes: 1

Srijan
Srijan

Reputation: 152

whenever you try to execute your code it will reopen the same file so either apply a condition that checks if file is open or not and if not then only it opens the file or every time you should close the file at the end of your code.

you can refer: Detect whether Excel workbook is already open

keep this in else part:

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

Upvotes: 0

Related Questions