Object Browser does what?

D

davegb

I've been told by others that the Object Browser is a useful tool for
figuring out if a given object/method/property exists under another
object/method/property. I haven't found this to be true. For example,
I'm getting an "Object does not support this property or method" error
on this line of code:

ActiveSheet.Range(rFoundHd, rFoundHd.xlDown).Select

I found the "ActiveSheet.Range" in this forum in many examples. When I
got the error, I looked up Range in VBA help, but it doesn't list
"ActiveSheet" as a parent to ".Range". (Of course, there's no way to
look up "ActiveSheet" and see it's children). So it appears that only
some relationships are shown. Is the OB a partial list? If so, it there
a pattern of some kind to tell what's listed and what's not, or is it
just that some objects/methods/properties were missed?

I've also been very confused when the Object Browser lists multiple
examples of the same parent/child relationship, like Range and
Worksheet. Why tell me twice that range is a child of Worksheet? Is it
because, according to Walkenbach, Worksheet can be an object, a
property or a method? I don't know whether to laugh or cry!

There seems to be lots of help for experts in using VBA, and none for
beginners. Walkenbach's book certainly falls into this category. I've
discussed this in an earlier post and accepted this now. But after
several months of working with VBA, I still don't see much use to the
OB if it's not a complete listing. For right now, I feel that if I want
to know if .Range is a child of ActiveSheet, I have to check the OB,
and if I don't find the relationship, I have to check in this NG to
make sure. Pretty tedious! Is this in fact the way to proceed?

In any case, I do appreciate the help I've gotten here. Without it, I'd
certainly be nowwhere with writing all the code I've written!

And btw, any ideas on why I'm getting the error message on that line of
code?
 
T

Tom Ogilvy

Range doesn't have an xldown method or property. xldown is a constant used
as an argument to the End Property which the Range object does have.

set rFoundHD = Range("B9")
ActiveSheet.Range(rFoundHd, rFoundHd.End(xlDown)).Select

works for me.

To the best of my knowledge, the Object Browser is largely complete. If one
understands the basics, then it should be a source of help. Obviously, what
works for many may not work for all. If it is a help to you, then use it.
If it is more of a hinderance than a help, then it might not be the right
tool for you.

You are equating activeSheet to worksheet, but the activesheet is not always
a worksheet (It may be a chart as an example) - so it doesn't inherently
have the properties of a worksheet nor is it necessarily the parent of a
range. The parent of a worksheet range is always a worksheet. Sometimes
this parent may be the activesheet.
 
G

Guest

The error in your line of code is that you are not using the end property
instead you are using the constant associated with the property. End is what
you want to use, so the line will look like this:

ActiveSheet.Range(rFoundHd, rFoundHd.End(xlDown)).Select

A am assuming that you rFoundHd is a range object that is declared as a
range. As for the object browser it can be quite useful but it takes a bit of
practice and a bit of knowledge about the object you are using. Just keep
writing code and eventually it will be easy. That is what I keep telling
myself...
 
B

Bob Phillips

Please let's not argue this chestnut again. 35 posts between March 18-23
should be enough.
 
G

George Nicholson

ActiveSheet could refer to a Worksheet, a Chart sheet, an old-style Macro
sheet or an old-style Dialog sheet. Excel can't resolve the reference until
the code is run (which, BTW, is why Auto-list doesn't provide any drop-down
"help" when you type "Activesheet.").

Q: What would you expect the Object browser to display for the
properties/methods of ActiveSheet that wouldn't be misleading?
A: just what it does list: nothing. Because it could be any one of four
very different object classes, there is no good (much less right) answer.

If you want to view the members of the Worksheet class, look up the
Worksheet class in the ObjectBrowser, not ActiveSheet.

HTH,
 
D

davegb

Thanks for your reply, Tom.
The code works fine now.
I'm clear I don't understand the basics, wish there were a good
reference to learn them. I guess slogging away is the only option, so
I'll continue. Rote memorization has never been my forte, do much
better when there is logic I can learn. And rote memorization is really
hard when there's no complete reference to memorize from!
So I'll just keep relying on the kindness of people here.
 

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

Similar Threads


Top