Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 15
Default Referring to a member of the workbooks collection by name.

Hi

Writing code recently that selected a workbook by name, I hit a
problem. The code looked like this:

Workbooks("MyFile.xls").worksheets("Sheet1").Range ("A2").Value="Fred"

This worked fine on my machine, but not on a second one, returning
(from memory) a "Subscript out of range" error. However, on the second
machine it worked fine when I removed the .xls portion of the file
name.

I could get the other machine to accept the same code as mine, by
choosing its option in My Computer not to hide file extensions for
known file types, or get my machine to work like the second one by
choosing to hide the extensions.

My question, then, is this. How do you write code which will work no
matter what the user has set under their folder view options? Surely I
don't need to be making a call to the API to detect such settings?

Thanks
Andrew

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 54
Default Referring to a member of the workbooks collection by name.

There's probably a better way of doing this, but a quick and dirty way would
be:

Dim myWorkbook As Workbook

For Each myWorkbook In Workbooks
If Left(myWorkbook.Name, 6) = "MyFile" Then
myWorkbook.Worksheets("Sheet1").Range("A2").Value = "Fred"
Exit For
End If
Next

Hope that helps.

"Andrew" wrote:

Hi

Writing code recently that selected a workbook by name, I hit a
problem. The code looked like this:

Workbooks("MyFile.xls").worksheets("Sheet1").Range ("A2").Value="Fred"

This worked fine on my machine, but not on a second one, returning
(from memory) a "Subscript out of range" error. However, on the second
machine it worked fine when I removed the .xls portion of the file
name.

I could get the other machine to accept the same code as mine, by
choosing its option in My Computer not to hide file extensions for
known file types, or get my machine to work like the second one by
choosing to hide the extensions.

My question, then, is this. How do you write code which will work no
matter what the user has set under their folder view options? Surely I
don't need to be making a call to the API to detect such settings?

Thanks
Andrew


  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 3,290
Default Referring to a member of the workbooks collection by name.


What operating system(s) (and version) are the two computers using?
--
Jim Cone
San Francisco, USA
http://www.realezsites.com/bus/primitivesoftware


"Andrew"

wrote in message
Hi
Writing code recently that selected a workbook by name, I hit a
problem. The code looked like this:

Workbooks("MyFile.xls").worksheets("Sheet1").Range ("A2").Value="Fred"

This worked fine on my machine, but not on a second one, returning
(from memory) a "Subscript out of range" error. However, on the second
machine it worked fine when I removed the .xls portion of the file
name.
I could get the other machine to accept the same code as mine, by
choosing its option in My Computer not to hide file extensions for
known file types, or get my machine to work like the second one by
choosing to hide the extensions.
My question, then, is this. How do you write code which will work no
matter what the user has set under their folder view options? Surely I
don't need to be making a call to the API to detect such settings?
Thanks
Andrew

  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 15
Default Referring to a member of the workbooks collection by name.

Both using WinXP SP2...

Andrew


On May 9, 6:49 pm, "Jim Cone" wrote:
What operating system(s) (and version) are the two computers using?
--
Jim Cone
San Francisco, USAhttp://www.realezsites.com/bus/primitivesoftware

"Andrew"

wrote in message
Hi
Writing code recently that selected a workbook by name, I hit a
problem. The code looked like this:

Workbooks("MyFile.xls").worksheets("Sheet1").Range ("A2").Value="Fred"

This worked fine on my machine, but not on a second one, returning
(from memory) a "Subscript out of range" error. However, on the second
machine it worked fine when I removed the .xls portion of the file
name.
I could get the other machine to accept the same code as mine, by
choosing its option in My Computer not to hide file extensions for
known file types, or get my machine to work like the second one by
choosing to hide the extensions.
My question, then, is this. How do you write code which will work no
matter what the user has set under their folder view options? Surely I
don't need to be making a call to the API to detect such settings?
Thanks
Andrew



  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 3,290
Default Referring to a member of the workbooks collection by name.

Andrew,
With WinXP SP2, (XL 2002) I cannot duplicate the problem.
"FileName.xls" works whether file extensions are hidden or not.
"FileName" only works when file extensions are hidden.

Are you sure that the error is not coming from the worksheet name?
Also, a workbook must be saved in order for it to have a file extension.
--
Jim Cone
San Francisco, USA
http://www.realezsites.com/bus/primitivesoftware



"Andrew"
wrote in message
Both using WinXP SP2...
Andrew


On May 9, 6:49 pm, "Jim Cone"

wrote:
What operating system(s) (and version) are the two computers using?
--
Jim Cone
San Francisco, USAhttp://www.realezsites.com/bus/primitivesoftware




"Andrew"

wrote in message
Hi
Writing code recently that selected a workbook by name, I hit a
problem. The code looked like this:

Workbooks("MyFile.xls").worksheets("Sheet1").Range ("A2").Value="Fred"

This worked fine on my machine, but not on a second one, returning
(from memory) a "Subscript out of range" error. However, on the second
machine it worked fine when I removed the .xls portion of the file
name.
I could get the other machine to accept the same code as mine, by
choosing its option in My Computer not to hide file extensions for
known file types, or get my machine to work like the second one by
choosing to hide the extensions.
My question, then, is this. How do you write code which will work no
matter what the user has set under their folder view options? Surely I
don't need to be making a call to the API to detect such settings?
Thanks
Andrew





  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 15
Default Referring to a member of the workbooks collection by name.

Hi Jim

Thanks for the input. Only difference is that I'm using XL2003 but I
can't imagine that making any odds.

Anyway, as is always the way with these things, I've moved onto other
things, and am now also unable to re-create the situation... :-)

My guess is that you're onto something with the idea that the file may
not have been saved.... (wasn't my file!)

Thanks for the input
Andrew


On May 10, 6:31 pm, "Jim Cone" wrote:
Andrew,
With WinXP SP2, (XL 2002) I cannot duplicate the problem.
"FileName.xls" works whether file extensions are hidden or not.
"FileName" only works when file extensions are hidden.

Are you sure that the error is not coming from the worksheet name?
Also, a workbook must be saved in order for it to have a file extension.
--
Jim Cone
San Francisco, USAhttp://www.realezsites.com/bus/primitivesoftware

"Andrew"
wrote in message
Both using WinXP SP2...
Andrew

On May 9, 6:49 pm, "Jim Cone"

wrote:



What operating system(s) (and version) are the two computers using?
--
Jim Cone
San Francisco, USAhttp://www.realezsites.com/bus/primitivesoftware
"Andrew"

wrote in message
Hi
Writing code recently that selected a workbook by name, I hit a
problem. The code looked like this:


Workbooks("MyFile.xls").worksheets("Sheet1").Range ("A2").Value="Fred"


This worked fine on my machine, but not on a second one, returning
(from memory) a "Subscript out of range" error. However, on the second
machine it worked fine when I removed the .xls portion of the file
name.
I could get the other machine to accept the same code as mine, by
choosing its option in My Computer not to hide file extensions for
known file types, or get my machine to work like the second one by
choosing to hide the extensions.
My question, then, is this. How do you write code which will work no
matter what the user has set under their folder view options? Surely I
don't need to be making a call to the API to detect such settings?
Thanks
Andrew- Hide quoted text -


- Show quoted text -



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
PivotTable with Member Property - how to subtotal on Member Proper swordsman Excel Programming 0 June 23rd 06 10:01 PM
Workbooks collection is empty even though the some of the document is open [email protected] Excel Programming 12 December 28th 05 10:47 AM
Referring to other workbooks jkitzy Excel Programming 1 January 7th 05 02:42 AM
Problems with referring to workbooks Matt Lawson Excel Programming 1 February 21st 04 04:26 PM
Is it possible to set a class member to be another class member? Michael[_21_] Excel Programming 3 October 30th 03 08:28 AM


All times are GMT +1. The time now is 06:20 AM.

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"