How to close specific workbook not all active workbooks?

B

Bon

Hello all

I have assign a specific workbook to the workbook variable. But, it
doesn't close the specific workbook. It closes all active workbooks.
How can I solve this problem?

My module:

Sub CopyWorksheetContentToWork(strFilePath As String)
Dim xlApp As Excel.Application
Dim xlWorkbook As Excel.Workbook
Dim WorkbookToWorkOn As String
Dim ExcelWasNotRunning As String

WorkbookToWorkOn = strFilePath

On Error Resume Next
Set xlApp = GetObject(, "Excel.Application")

If Err Then
ExcelWasNotRunning = True
Set xlApp = CreateObject("Excel.Application")
End If

Set xlWorkbook = xlApp.Workbooks(WorkbookToWorkOn)

'Code for copying Excel worksheets content to ActiveDocument

xlApp.Visible = False
xlWorkook.Close SaveChangee:=False
xlApp.Quit
Set xlWorkbook = Nothing
Set xlApp = Nothing
End Sub

Could anyone point out my mistakes?
Thank you very much

Cheers
Bon
 
K

K Dales

It is when you do XlApp.Quit. You are closing down the Excel session
entirely, so all workbooks and Excel itself will close.

If you always want to leave Excel open when done, just take that line out.
If you want it open only if it was open initially, use your variable
ExcelWasNotRunning to determine if you should do the XlApp.Quit or not.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top