![]() |
Subscript out of Range
I used the following two methods to determine the existence of a spreadsheet
on one system, but using the same statements on another system I get Error 9, subscript out of Range. Both systems are running Windows XP and Office 2003. The worksheet does not exist at the time either of these statements are executed. If Len(Worksheets("XYZ").Name) 0 then do this or that Worksheets("XYZ").Activate If Err.Number < 0 then do this or that Why do these work on one system and not the other? Is it possible that there is a setting that needs to be change within Excel to make this work? Very perplexing. Any assistance would be greatly appreciated. Thank you in advance. |
Subscript out of Range
I can't explain your situation, but maybe you'd like to use Allen Browne's
function: Public Function FileExists(ByVal strFile As String, Optional bFindFolders As Boolean) As Boolean 'Purpose: Return True if the file exists, even if it is hidden. 'Arguments: strFile: File name to look for. Current directory searched if no path included. ' bFindFolders. If strFile is a folder, FileExists() returns False unless this argument is True. 'Note: Does not look inside subdirectories for the file. 'Author: Allen Browne. http://allenbrowne.com June, 2006. Dim lngAttributes As Long 'Include read-only files, hidden files, system files. lngAttributes = (vbReadOnly Or vbHidden Or vbSystem) If bFindFolders Then lngAttributes = (lngAttributes Or vbDirectory) 'Include folders as well. Else 'Strip any trailing slash, so Dir does not look inside the folder. Do While Right$(strFile, 1) = "\" strFile = Left$(strFile, Len(strFile) - 1) Loop End If 'If Dir() returns something, the file exists. On Error Resume Next FileExists = (Len(Dir(strFile, lngAttributes)) 0) End Function "Steve" wrote: I used the following two methods to determine the existence of a spreadsheet on one system, but using the same statements on another system I get Error 9, subscript out of Range. Both systems are running Windows XP and Office 2003. The worksheet does not exist at the time either of these statements are executed. If Len(Worksheets("XYZ").Name) 0 then do this or that Worksheets("XYZ").Activate If Err.Number < 0 then do this or that Why do these work on one system and not the other? Is it possible that there is a setting that needs to be change within Excel to make this work? Very perplexing. Any assistance would be greatly appreciated. Thank you in advance. |
Subscript out of Range
I bet you left off this line, too:
On Error Resume Next And if you go into the VBE (on both pc's), you'll find a difference in a setting. Look at Tools|Options|General tab One has "Break on all errors" checked (the one that failed). and the other has one of the other options checked. I use "break in class module" Steve wrote: I used the following two methods to determine the existence of a spreadsheet on one system, but using the same statements on another system I get Error 9, subscript out of Range. Both systems are running Windows XP and Office 2003. The worksheet does not exist at the time either of these statements are executed. If Len(Worksheets("XYZ").Name) 0 then do this or that Worksheets("XYZ").Activate If Err.Number < 0 then do this or that Why do these work on one system and not the other? Is it possible that there is a setting that needs to be change within Excel to make this work? Very perplexing. Any assistance would be greatly appreciated. Thank you in advance. -- Dave Peterson |
Subscript out of Range
Yes, indeed I did. Thanks for the information, it saved the little bit of
hair I have left. "Dave Peterson" wrote: I bet you left off this line, too: On Error Resume Next And if you go into the VBE (on both pc's), you'll find a difference in a setting. Look at Tools|Options|General tab One has "Break on all errors" checked (the one that failed). and the other has one of the other options checked. I use "break in class module" Steve wrote: I used the following two methods to determine the existence of a spreadsheet on one system, but using the same statements on another system I get Error 9, subscript out of Range. Both systems are running Windows XP and Office 2003. The worksheet does not exist at the time either of these statements are executed. If Len(Worksheets("XYZ").Name) 0 then do this or that Worksheets("XYZ").Activate If Err.Number < 0 then do this or that Why do these work on one system and not the other? Is it possible that there is a setting that needs to be change within Excel to make this work? Very perplexing. Any assistance would be greatly appreciated. Thank you in advance. -- Dave Peterson |
All times are GMT +1. The time now is 02:45 PM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com