Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 175
Default workbooks.open and error handling

Im getting an error when running this code on the Set. (I found this code as
a solution on another post, but it won't seem to work.)

thedir = CurDir()
On Error GoTo notOpen
Set xlTest = Workbooks("ThePlayingboard.xls") ***
GoTo itsOpenNow
notOpen:
Workbooks.Open Filename:=theDir & "\" & "ThePlayingboard.xls",
UpdateLinks:=0
itsOpenNow:
Workbooks("ThePlayingboard.xls").Worksheets("Comba t").Activate

At the *** marker, this is the line that gets a "runtime error 9, subscript
out of range" which I assume is the Workbooks(sub) its talking about. and
this Should happen because the file was not open. I was under the impression
that the On Error GoTo label would trap the error and force the execution
pointer to jump on past the error.

I'm just trying to make sure the file is open, if it is open then Activate,
else open it then activate. How do you do that?

--
Regards,
John
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,080
Default workbooks.open and error handling

From the VBE menu:

Tools | Options | General | Error Trapping.

Perhaps "Break on All Errors" is selected?

--

Vasant



"John Keith" wrote in message
...
Im getting an error when running this code on the Set. (I found this code

as
a solution on another post, but it won't seem to work.)

thedir = CurDir()
On Error GoTo notOpen
Set xlTest = Workbooks("ThePlayingboard.xls") ***
GoTo itsOpenNow
notOpen:
Workbooks.Open Filename:=theDir & "\" & "ThePlayingboard.xls",
UpdateLinks:=0
itsOpenNow:
Workbooks("ThePlayingboard.xls").Worksheets("Comba t").Activate

At the *** marker, this is the line that gets a "runtime error 9,

subscript
out of range" which I assume is the Workbooks(sub) its talking about. and
this Should happen because the file was not open. I was under the

impression
that the On Error GoTo label would trap the error and force the execution
pointer to jump on past the error.

I'm just trying to make sure the file is open, if it is open then

Activate,
else open it then activate. How do you do that?

--
Regards,
John



  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 175
Default workbooks.open and error handling

That was a great thought, but it wasn't the case. "Break on unhandled
errors" was selected.

I have tried the same code on Excel 2003 and 2002. The same problem exists
that the On Error goto... is not catching the run time error 9; Subscript
out of range on the workbooks.open

Or am i misunderstanding how the "On Error" works? (im still new to VBA)

--
Regards,
John


"Vasant Nanavati" wrote:

From the VBE menu:

Tools | Options | General | Error Trapping.

Perhaps "Break on All Errors" is selected?

--

Vasant



"John Keith" wrote in message
...
Im getting an error when running this code on the Set. (I found this code

as
a solution on another post, but it won't seem to work.)

thedir = CurDir()
On Error GoTo notOpen
Set xlTest = Workbooks("ThePlayingboard.xls") ***
GoTo itsOpenNow
notOpen:
Workbooks.Open Filename:=theDir & "\" & "ThePlayingboard.xls",
UpdateLinks:=0
itsOpenNow:
Workbooks("ThePlayingboard.xls").Worksheets("Comba t").Activate

At the *** marker, this is the line that gets a "runtime error 9,

subscript
out of range" which I assume is the Workbooks(sub) its talking about. and
this Should happen because the file was not open. I was under the

impression
that the On Error GoTo label would trap the error and force the execution
pointer to jump on past the error.

I'm just trying to make sure the file is open, if it is open then

Activate,
else open it then activate. How do you do that?

--
Regards,
John




  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,080
Default workbooks.open and error handling

I tried your code on Excel 2002 and it worked just fine. The error was
handled as desired.

Do you have any error handling statements (that are not reset to 0) in an
earlier part of your code, or possibly in another sub that is calling this
sub?

--

Vasant


"John Keith" wrote in message
...
That was a great thought, but it wasn't the case. "Break on unhandled
errors" was selected.

I have tried the same code on Excel 2003 and 2002. The same problem

exists
that the On Error goto... is not catching the run time error 9; Subscript
out of range on the workbooks.open

Or am i misunderstanding how the "On Error" works? (im still new to VBA)

--
Regards,
John


"Vasant Nanavati" wrote:

From the VBE menu:

Tools | Options | General | Error Trapping.

Perhaps "Break on All Errors" is selected?

--

Vasant



"John Keith" wrote in message
...
Im getting an error when running this code on the Set. (I found this

code
as
a solution on another post, but it won't seem to work.)

thedir = CurDir()
On Error GoTo notOpen
Set xlTest = Workbooks("ThePlayingboard.xls") ***
GoTo itsOpenNow
notOpen:
Workbooks.Open Filename:=theDir & "\" & "ThePlayingboard.xls",
UpdateLinks:=0
itsOpenNow:
Workbooks("ThePlayingboard.xls").Worksheets("Comba t").Activate

At the *** marker, this is the line that gets a "runtime error 9,

subscript
out of range" which I assume is the Workbooks(sub) its talking about.

and
this Should happen because the file was not open. I was under the

impression
that the On Error GoTo label would trap the error and force the

execution
pointer to jump on past the error.

I'm just trying to make sure the file is open, if it is open then

Activate,
else open it then activate. How do you do that?

--
Regards,
John






  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,758
Default workbooks.open and error handling

I find this more straightforward:

dim xlTest as workbook

set xltest = nothing
on error resume next
set xltest = workbooks("theplayingboard.xls")
on error goto 0

if xltest is nothing then
set xltest = workbooks.open(....)
end if

xltest.activate
xltest.worksheets("combat").activate

===


I think this'll cause trouble if ThePlayingBoard.xls isn't active:
Workbooks("ThePlayingboard.xls").Worksheets("Comba t").Activate



John Keith wrote:

Im getting an error when running this code on the Set. (I found this code as
a solution on another post, but it won't seem to work.)

thedir = CurDir()
On Error GoTo notOpen
Set xlTest = Workbooks("ThePlayingboard.xls") ***
GoTo itsOpenNow
notOpen:
Workbooks.Open Filename:=theDir & "\" & "ThePlayingboard.xls",
UpdateLinks:=0
itsOpenNow:
Workbooks("ThePlayingboard.xls").Worksheets("Comba t").Activate

At the *** marker, this is the line that gets a "runtime error 9, subscript
out of range" which I assume is the Workbooks(sub) its talking about. and
this Should happen because the file was not open. I was under the impression
that the On Error GoTo label would trap the error and force the execution
pointer to jump on past the error.

I'm just trying to make sure the file is open, if it is open then Activate,
else open it then activate. How do you do that?

--
Regards,
John


--

Dave Peterson


  #6   Report Post  
Posted to microsoft.public.excel.programming
jai jai is offline
external usenet poster
 
Posts: 71
Default workbooks.open and error handling

Hi John,

Firstly the problem with your code.
Workbooks("Filename.xls") works only if the workbook is part of the
workbooks collection ie if it is already open. Since at the point of
invocation, it is not open, it will give an error. You may set a workbook
variable to it after opening the file without error.

What you need to do is to
1. Determine if the file is existing in the given path. Use the Dir
function
dim Fil as String
Fil = dir(path &"\" filename.xls") will return an empty string if
the file is not in the given path, else it will return the filename. You may
use wild cards on Windows - apparantly does not work on Macs.

2. Determine if the workbook is already open. To do so, you have to
search the workbooks collection

Dim wb as workbook, isOpen as Boolean
IsOpen = False
for each wb in workbooks
if wb.name = "xyz.xls" then
IsOpen = True
exit For
endif
end for
[use IsOpen logical variable at this point to check]



"John Keith" wrote:

Im getting an error when running this code on the Set. (I found this code as
a solution on another post, but it won't seem to work.)

thedir = CurDir()
On Error GoTo notOpen
Set xlTest = Workbooks("ThePlayingboard.xls") ***
GoTo itsOpenNow
notOpen:
Workbooks.Open Filename:=theDir & "\" & "ThePlayingboard.xls",
UpdateLinks:=0
itsOpenNow:
Workbooks("ThePlayingboard.xls").Worksheets("Comba t").Activate

At the *** marker, this is the line that gets a "runtime error 9, subscript
out of range" which I assume is the Workbooks(sub) its talking about. and
this Should happen because the file was not open. I was under the impression
that the On Error GoTo label would trap the error and force the execution
pointer to jump on past the error.

I'm just trying to make sure the file is open, if it is open then Activate,
else open it then activate. How do you do that?

--
Regards,
John

Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Error Handling - Check a file isn't already open before overwritin NDBC Excel Discussion (Misc queries) 4 August 13th 09 08:36 AM
Error handling with a handling routine ben Excel Programming 0 March 15th 05 03:01 PM
Excel 2003 Workbooks.Open with CorruptLoad=xlRepairFile fails on Excel 5.0/95 file due to Chart, with Error 1004 Method 'Open' of object 'Workbooks' failed Frank Jones Excel Programming 2 June 15th 04 03:21 AM
Error Handling Open Function or query for missing Files BigNate Excel Programming 3 June 11th 04 05:22 PM
error on oXL.Workbooks.Open arieribbens Excel Programming 3 April 26th 04 10:09 AM


All times are GMT +1. The time now is 05:18 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"