VB Is a workbook open

  • Thread starter Thread starter linda
  • Start date Start date
L

linda

In running a Visual Basic macro in Excel 2002, I have the
following situation.

The macro opens another workbook (that already exists) to
read and write some values in it.
If the other workbook is already open, then it has to be
closed and reopened each time (in response to a dialog
box) or the macro terminates.
I would like to omit the request to open the other
workbook in the event that it is already open. But I
cannot find any function in Visual Basic that can return
the status of the other workbook (i.e., whether or not it
is already open).
 
Hi Linda,

Dim WB as Workbook

On Error Resume Next
Set WB = Workbooks("YourWorkbookName")
On Error Goto 0

If Not WB is Nothing Then
'Workbook is open
Else
'Workbook not open
End if
 
Dim bk as Workbook
Dim bOpen
On Error Resume Next
set bk = workbooks("Mybook.xls")
On Error goto 0
bOpen = False
if not bk is nothing then
' wkbk is open do nothing
bOpen = True
Else
set bk = Workbooks.Open("C:\Myfiles\Mybook.xls")
End if
' at this point bk holds a reference to Mybook.xls

.. . .


if not bOpen then
bk.Close Savechanges:=False
End if

End Sub
 
Linda,

On Error Resume Next
Windows("Filename.xls").Close False 'To not save changes, True to save
Workbooks.Open "C:\Excel\Filename.xls"

HTH,
Bernie
MS Excel MVP
 

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

Back
Top