Home |
Search |
Today's Posts |
|
#1
![]() |
|||
|
|||
![]()
Given a NAMED range called "Sheet1_Table" that refers to "Sheet1!e1:h4" and
the value "Sheet1_Table" in cell C1, how can I get the following VBA function: Function say_what(ByRef input_arg As Variant) As Variant If TypeName(input_arg) = "Range" Then say_what = input_arg.Rows.Count & " by " & input_arg.Columns.Count Else say_what = TypeName(input_arg) End If End Function to return the same result for =say_what( indirect(c1) ) and =say_what( c1 )? say_what( indirect(c1) ) returns a correct "4 by 4" but say_what( c1 ) returns an incorrect "1 by 1". Thank you, How can I get |
#2
![]() |
|||
|
|||
![]()
I'd say what the two calls return are correct.
You could also try: =say_what( Sheet1_Table ) = 4 by 4 Regards Trevor "BG" wrote in message ... Given a NAMED range called "Sheet1_Table" that refers to "Sheet1!e1:h4" and the value "Sheet1_Table" in cell C1, how can I get the following VBA function: Function say_what(ByRef input_arg As Variant) As Variant If TypeName(input_arg) = "Range" Then say_what = input_arg.Rows.Count & " by " & input_arg.Columns.Count Else say_what = TypeName(input_arg) End If End Function to return the same result for =say_what( indirect(c1) ) and =say_what( c1 )? say_what( indirect(c1) ) returns a correct "4 by 4" but say_what( c1 ) returns an incorrect "1 by 1". Thank you, How can I get |
#3
![]() |
|||
|
|||
![]()
Hi Trevor,
Thank you for your interest! You are correct - i.e., both calls return results and =say_what( Sheet1_Table ) returns 4 x 4. However, my question is: How do I make =say_what( c1 ) produce the same result as =say_what( INDIRECT(c1) )? That is, what do I need to do in the say_what finction to emulate the INDIRECT function? Thanks again, BG "Trevor Shuttleworth" wrote: I'd say what the two calls return are correct. You could also try: =say_what( Sheet1_Table ) = 4 by 4 Regards Trevor "BG" wrote in message ... Given a NAMED range called "Sheet1_Table" that refers to "Sheet1!e1:h4" and the value "Sheet1_Table" in cell C1, how can I get the following VBA function: Function say_what(ByRef input_arg As Variant) As Variant If TypeName(input_arg) = "Range" Then say_what = input_arg.Rows.Count & " by " & input_arg.Columns.Count Else say_what = TypeName(input_arg) End If End Function to return the same result for =say_what( indirect(c1) ) and =say_what( c1 )? say_what( indirect(c1) ) returns a correct "4 by 4" but say_what( c1 ) returns an incorrect "1 by 1". Thank you, How can I get |
#4
![]() |
|||
|
|||
![]()
BG
I'm not sure you can do what you want to do. When you pass the function the range C1 you *are* passing it a 1x1 range, that is one cell. When you pass it INDIRECT(C1), you are saying "pass the function the range *pointed to* by the cell C1", in other words, Sheet1_Table ... which is a 4x4 range. Thought of testing Range(input_arg) but I'm not making any progress. Sorry Regards Trevor "BG" wrote in message ... Hi Trevor, Thank you for your interest! You are correct - i.e., both calls return results and =say_what( Sheet1_Table ) returns 4 x 4. However, my question is: How do I make =say_what( c1 ) produce the same result as =say_what( INDIRECT(c1) )? That is, what do I need to do in the say_what finction to emulate the INDIRECT function? Thanks again, BG "Trevor Shuttleworth" wrote: I'd say what the two calls return are correct. You could also try: =say_what( Sheet1_Table ) = 4 by 4 Regards Trevor "BG" wrote in message ... Given a NAMED range called "Sheet1_Table" that refers to "Sheet1!e1:h4" and the value "Sheet1_Table" in cell C1, how can I get the following VBA function: Function say_what(ByRef input_arg As Variant) As Variant If TypeName(input_arg) = "Range" Then say_what = input_arg.Rows.Count & " by " & input_arg.Columns.Count Else say_what = TypeName(input_arg) End If End Function to return the same result for =say_what( indirect(c1) ) and =say_what( c1 )? say_what( indirect(c1) ) returns a correct "4 by 4" but say_what( c1 ) returns an incorrect "1 by 1". Thank you, How can I get |
#5
![]() |
|||
|
|||
![]()
Thank you for your efforts!
"Trevor Shuttleworth" wrote: BG I'm not sure you can do what you want to do. When you pass the function the range C1 you *are* passing it a 1x1 range, that is one cell. When you pass it INDIRECT(C1), you are saying "pass the function the range *pointed to* by the cell C1", in other words, Sheet1_Table ... which is a 4x4 range. Thought of testing Range(input_arg) but I'm not making any progress. Sorry Regards Trevor "BG" wrote in message ... Hi Trevor, Thank you for your interest! You are correct - i.e., both calls return results and =say_what( Sheet1_Table ) returns 4 x 4. However, my question is: How do I make =say_what( c1 ) produce the same result as =say_what( INDIRECT(c1) )? That is, what do I need to do in the say_what finction to emulate the INDIRECT function? Thanks again, BG "Trevor Shuttleworth" wrote: I'd say what the two calls return are correct. You could also try: =say_what( Sheet1_Table ) = 4 by 4 Regards Trevor "BG" wrote in message ... Given a NAMED range called "Sheet1_Table" that refers to "Sheet1!e1:h4" and the value "Sheet1_Table" in cell C1, how can I get the following VBA function: Function say_what(ByRef input_arg As Variant) As Variant If TypeName(input_arg) = "Range" Then say_what = input_arg.Rows.Count & " by " & input_arg.Columns.Count Else say_what = TypeName(input_arg) End If End Function to return the same result for =say_what( indirect(c1) ) and =say_what( c1 )? say_what( indirect(c1) ) returns a correct "4 by 4" but say_what( c1 ) returns an incorrect "1 by 1". Thank you, How can I get |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
In Excel how do I delete or change the name of a range of cells? | Excel Discussion (Misc queries) | |||
Is there a way to average if in excel when looking at a range of d | Excel Worksheet Functions | |||
Excel Page Range Printing Problems | Excel Discussion (Misc queries) | |||
combo box named range | Excel Discussion (Misc queries) | |||
dynamic range for excel chart | Excel Discussion (Misc queries) |