View Single Post
  #4   Report Post  
Posted to microsoft.public.excel.programming
Bob Bridges[_2_] Bob Bridges[_2_] is offline
external usenet poster
 
Posts: 257
Default Possible scoping problem

Nah, because once I have the object error figured out (I don't suppose you
have any ideas about that?) I intend to substitute this:

If TypeName(Sheet) = "Worksheet" Then Set wso = Sheet _
Else Set wso = wbo.Worksheets(SheetName)

--- "Barb Reinhardt" wrote:
I think I'd change

Function RangeValues(SheetName, RowA, ColZ)

to

Function RangeValues(SheetName as string, RowA as long, ColZ as long)

--- "Bob Bridges" wrote:
In a sheet module, declarations section:
Public wbo

The same sheet module, the first procedure, the first two statements:
Set wbo = Workbooks("MyWorkbook.xls")
Stns = RangeValues("Map", 2, 4)

RangeValues is in a separate module named "Common". It starts out like this:
Function RangeValues(SheetName, RowA, ColZ)
Set wso = wbo.Worksheets(SheetName)

So we enter RangeValues with the first argument set to "Map", and when it
gets to the statement "Set wso=wbo.Worksheets(Sheet)" I expect it to set wso
to the worksheet named "Map". Instead I get an error 91:

Run-time error '91':
Object variable or With block variable not set.

This SEEMS to say that wbo isn't properly initialized as a workbook object.
Yet just before it executes the Set statement I can see wbo in the Watch
window, with the Map sheet as one of its properties. So is the error message
talking about some other object? Can anyone see the obvious piece I'm
missing?