![]() |
What is default property of name object
Hi all,
I can use Range("A1:a3").Name = "data" to define a name object. but Range("A1:a3").Name will display the address of the name object Could you explain why? Clara -- thank you so much for your help |
What is default property of name object
Hi Clara,
The default property of a Name is RefersTo, hence if the name refers to a range returning the default property will return its address Maybe you want this - On error resume next s = "" s = Range("A1:a3").Name.Name on error goto 0 If len(s) then msgbox s & vbcr & Range("A1:a3").Name else msgbox "the range is not defined" End if Regards, Peter T "clara" wrote in message ... Hi all, I can use Range("A1:a3").Name = "data" to define a name object. but Range("A1:a3").Name will display the address of the name object Could you explain why? Clara -- thank you so much for your help |
What is default property of name object
Hi Peter,
Thank you very mcuh! What I really mean is that there is an inconsistency here since we use Range("A1:a3").Name = "data"( Set method) to assign a name, we can not retrieve(Get) by referring to Range("A1:a3").Name Clara -- thank you so much for your help "Peter T" wrote: Hi Clara, The default property of a Name is RefersTo, hence if the name refers to a range returning the default property will return its address Maybe you want this - On error resume next s = "" s = Range("A1:a3").Name.Name on error goto 0 If len(s) then msgbox s & vbcr & Range("A1:a3").Name else msgbox "the range is not defined" End if Regards, Peter T "clara" wrote in message ... Hi all, I can use Range("A1:a3").Name = "data" to define a name object. but Range("A1:a3").Name will display the address of the name object Could you explain why? Clara -- thank you so much for your help |
What is default property of name object
Hi again,
I see what you mean but it's not really an inconsistency say you did - Set rng = [a1] then v = rng v returns the default property of the range which is its value, not the cell reference or its name if it has one. If you are trying to return your range's name then you need to return the Name property of the Name object. As before - On error resume next ' in case the range doesn't have a Name s = "" s = Range("A1:a3").Name.Name similarly set nm = activeworkbook.names("test") s = nm.Name ' 'test Regards, Peter T "clara" wrote in message ... Hi Peter, Thank you very mcuh! What I really mean is that there is an inconsistency here since we use Range("A1:a3").Name = "data"( Set method) to assign a name, we can not retrieve(Get) by referring to Range("A1:a3").Name Clara -- thank you so much for your help "Peter T" wrote: Hi Clara, The default property of a Name is RefersTo, hence if the name refers to a range returning the default property will return its address Maybe you want this - On error resume next s = "" s = Range("A1:a3").Name.Name on error goto 0 If len(s) then msgbox s & vbcr & Range("A1:a3").Name else msgbox "the range is not defined" End if Regards, Peter T "clara" wrote in message ... Hi all, I can use Range("A1:a3").Name = "data" to define a name object. but Range("A1:a3").Name will display the address of the name object Could you explain why? Clara -- thank you so much for your help |
What is default property of name object
Peter, Clara,
From Help: Name property as it applies to the Font and Range objects. Returns or sets the name of the object. The name of a Range object is a Name object. For every other type of object, the name is a string. Read/write Variant. <This does not really help, as what does "the name of the object" mean in this case ? So, if a Name has been set for the range: ?typename(Range("A1").name) Name Which makes sense. But then Range("A1").name="Name1" ?Range("A1").Name.name Name1 ?names("name1").RefersTo =Sheet3!$A$1 should not work, as the default property for a Name is RefersTo, but this is clearly setting the Name.Name correctly. It does seems some short-cut in the implementation, which, whilst useful, can be confusing. NickHK "Peter T" <peter_t@discussions wrote in message ... Hi again, I see what you mean but it's not really an inconsistency say you did - Set rng = [a1] then v = rng v returns the default property of the range which is its value, not the cell reference or its name if it has one. If you are trying to return your range's name then you need to return the Name property of the Name object. As before - On error resume next ' in case the range doesn't have a Name s = "" s = Range("A1:a3").Name.Name similarly set nm = activeworkbook.names("test") s = nm.Name ' 'test Regards, Peter T "clara" wrote in message ... Hi Peter, Thank you very mcuh! What I really mean is that there is an inconsistency here since we use Range("A1:a3").Name = "data"( Set method) to assign a name, we can not retrieve(Get) by referring to Range("A1:a3").Name Clara -- thank you so much for your help "Peter T" wrote: Hi Clara, The default property of a Name is RefersTo, hence if the name refers to a range returning the default property will return its address Maybe you want this - On error resume next s = "" s = Range("A1:a3").Name.Name on error goto 0 If len(s) then msgbox s & vbcr & Range("A1:a3").Name else msgbox "the range is not defined" End if Regards, Peter T "clara" wrote in message ... Hi all, I can use Range("A1:a3").Name = "data" to define a name object. but Range("A1:a3").Name will display the address of the name object Could you explain why? Clara -- thank you so much for your help |
What is default property of name object
Peter,
Succintly put. I'm glad (most of) the rest of the Object Model is more straight-forward. NickHK "Peter T" <peter_t@discussions bl... I follow the confusion and to a certain extent the oddity Range("A1").Name="Name1" what are you actually setting ? Not Set'ing but assigning a string name to the range's name-object property (the property always exists even if the name doesn't). This in turn adds the Name to the Names collection. Regards, Peter T "NickHK" wrote in message ... Peter, Only that if you can do this to a non-default property of the Name object, ie. Name.Name Range("A1").Name="Name1" what are you actually setting ? Small point, but I understand Clara's confusion. NickHK "Peter T" <peter_t@discussions wrote in message ... Hi Nick, Re this bit - But then Range("A1").name="Name1" ?Range("A1").Name.name Name1 ?names("name1").RefersTo =Sheet3!$A$1 should not work, as the default property for a Name is RefersTo, Don't see any confusion here or why it "should not work" A Range object has a Name property which is a Name object, assuming the range is named. As you say, the default property of the Name object is RefersTo which as expected returns the string range reference (in the case of a range name). This subject to the max 255 limit (or a bit less) even though the actual defined range reference can be considerably more. But a Name object also has a string Name property, similar to some other objects, hence objDefinedName.Name returns the name of the Name. Regards, Peter T "NickHK" wrote in message ... Peter, Clara, From Help: Name property as it applies to the Font and Range objects. Returns or sets the name of the object. The name of a Range object is a Name object. For every other type of object, the name is a string. Read/write Variant. <This does not really help, as what does "the name of the object" mean in this case ? So, if a Name has been set for the range: ?typename(Range("A1").name) Name Which makes sense. But then Range("A1").name="Name1" ?Range("A1").Name.name Name1 ?names("name1").RefersTo =Sheet3!$A$1 should not work, as the default property for a Name is RefersTo, but this is clearly setting the Name.Name correctly. It does seems some short-cut in the implementation, which, whilst useful, can be confusing. NickHK "Peter T" <peter_t@discussions wrote in message ... Hi again, I see what you mean but it's not really an inconsistency say you did - Set rng = [a1] then v = rng v returns the default property of the range which is its value, not the cell reference or its name if it has one. If you are trying to return your range's name then you need to return the Name property of the Name object. As before - On error resume next ' in case the range doesn't have a Name s = "" s = Range("A1:a3").Name.Name similarly set nm = activeworkbook.names("test") s = nm.Name ' 'test Regards, Peter T "clara" wrote in message ... Hi Peter, Thank you very mcuh! What I really mean is that there is an inconsistency here since we use Range("A1:a3").Name = "data"( Set method) to assign a name, we can not retrieve(Get) by referring to Range("A1:a3").Name Clara -- thank you so much for your help "Peter T" wrote: Hi Clara, The default property of a Name is RefersTo, hence if the name refers to a range returning the default property will return its address Maybe you want this - On error resume next s = "" s = Range("A1:a3").Name.Name on error goto 0 If len(s) then msgbox s & vbcr & Range("A1:a3").Name else msgbox "the range is not defined" End if Regards, Peter T "clara" wrote in message ... Hi all, I can use Range("A1:a3").Name = "data" to define a name object. but Range("A1:a3").Name will display the address of the name object Could you explain why? Clara -- thank you so much for your help |
All times are GMT +1. The time now is 05:36 PM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com