Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
Declaring as Object rather than Excel.Worksheet
Why would anyone prefer declaring a variable as object rather than
explicitly declaring what type of object it is (assuming it will always be the same in the end)? For example, in workbook events, why is it "ByVal Sh As Object" rather than "ByVal Sh As Excel.Worksheet"? Is it a problem with maintaining references, or...??? Thanks! |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
Declaring as Object rather than Excel.Worksheet
Hi,
Yes, maintaining references. If you use the "ByVal Sh As Excel.Worksheet" method (early binding) you have to set a reference to Excel and therefore a specific version of Excel. Which should work with equal or a higher version number on the users machine. "ByVal Sh As Object" dynamically creates an Excel object if it is installed on the users machine, and is known as late binding. Late binding can have problems also. If you use a command that didn't exist in previous versions it will error. You can also programmatically create a reference to whatever version is installed on the users machine, (with lots of error checking) and get the best of both methods. If you do a google search you should find some examples of programmatically creating a reference. -- John johnf 202 at hotmail dot com "R Avery" wrote in message ... | Why would anyone prefer declaring a variable as object rather than | explicitly declaring what type of object it is (assuming it will always be | the same in the end)? | | For example, in workbook events, why is it "ByVal Sh As Object" rather than | "ByVal Sh As Excel.Worksheet"? | | Is it a problem with maintaining references, or...??? | | Thanks! | | |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
Declaring as Object rather than Excel.Worksheet
Jaf
I had a problem last year where I declared wsMenu as Worksheet When I tried to set a variable based on a option button value I was getting an error. To overcome this I had to declare wsMenu as Object - Early binding as against late binding --- Message posted from http://www.ExcelForum.com/ |
#4
Posted to microsoft.public.excel.programming
|
|||
|
|||
Declaring as Object rather than Excel.Worksheet
R
The reason that it is declared as Object in the events is that Sh can refer to more than one kind of object. Sh can refer to a Worksheet or a ChartSheet (and probably to an xl4 macro sheet), so they have to declare the variable as the generic object so that the event works for worksheets and charts. There is no Sheet object, so they can't use that. But there is a Sheets collection object which contains all the different kinds of sheets. -- Dick Kusleika MVP - Excel www.dicks-clicks.com Post all replies to the newsgroup. "R Avery" wrote in message ... Why would anyone prefer declaring a variable as object rather than explicitly declaring what type of object it is (assuming it will always be the same in the end)? For example, in workbook events, why is it "ByVal Sh As Object" rather than "ByVal Sh As Excel.Worksheet"? Is it a problem with maintaining references, or...??? Thanks! |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Excel 2002 and VB declaring number as double | Excel Discussion (Misc queries) | |||
plot graph from multiple worksheet as embedded chart object on every worksheet | Charts and Charting in Excel | |||
plot graph from multiple worksheet as embedded chart object on every worksheet | Excel Discussion (Misc queries) | |||
plot graph from multiple worksheet as embedded chart object on every worksheet | New Users to Excel | |||
Linking an object in power point to a excel worksheet | Excel Discussion (Misc queries) |