ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   How to close specific workbook not all active workbooks? (https://www.excelbanter.com/excel-programming/350971-how-close-specific-workbook-not-all-active-workbooks.html)

Bon

How to close specific workbook not all active workbooks?
 
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 Dales[_2_]

How to close specific workbook not all active workbooks?
 
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.
--
- K Dales


"Bon" wrote:

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




All times are GMT +1. The time now is 12:51 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com