Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I have a worksheet with the numbers 1 to 8 in range d8:g9 and have named
range d8:g8 "SheetNumbers" and d8:g9 "SheetNumbers2". I have also defined two workbook names as follows: "NameNumbers" ={1,2,3,4} and "NameNumbers2" ={1,2,3,4;5,6,7,8}. I have a vba procedure as follows: Sub alpha() Dim X As Variant, Y As Variant X = Sheet1.Range("SheetNumbers2") Y = [NameNumbers2] Debug.Print LBound(X, 1); UBound(X, 1) Debug.Print LBound(Y, 1); UBound(Y, 1) End Sub That produces the following result in the intermediate window: 1 2 1 2 So far so good, but I also have another procedure as follows: Sub bravo() Dim X As Variant, Y As Variant X = Sheet1.Range("SheetNumbers") Y = [NameNumbers] Debug.Print LBound(X, 1); UBound(X, 1) Debug.Print LBound(Y, 1); UBound(Y, 1) End Sub That produces the following result in the intermediate window: 1 1 1 4 For some reason Excel seems to interpret NameNunbers2 as an array of 2 rows and 4 columns, but interprets NameNumbers as a single column array of 4 rows. Does anybody know why? |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Because that is the way you created them. By adding a semi-colon after the 4
in NameNumbers2, you created a second dimension to the array. -- HTH Bob Phillips "Alasdair Stirling" wrote in message ... I have a worksheet with the numbers 1 to 8 in range d8:g9 and have named range d8:g8 "SheetNumbers" and d8:g9 "SheetNumbers2". I have also defined two workbook names as follows: "NameNumbers" ={1,2,3,4} and "NameNumbers2" ={1,2,3,4;5,6,7,8}. I have a vba procedure as follows: Sub alpha() Dim X As Variant, Y As Variant X = Sheet1.Range("SheetNumbers2") Y = [NameNumbers2] Debug.Print LBound(X, 1); UBound(X, 1) Debug.Print LBound(Y, 1); UBound(Y, 1) End Sub That produces the following result in the intermediate window: 1 2 1 2 So far so good, but I also have another procedure as follows: Sub bravo() Dim X As Variant, Y As Variant X = Sheet1.Range("SheetNumbers") Y = [NameNumbers] Debug.Print LBound(X, 1); UBound(X, 1) Debug.Print LBound(Y, 1); UBound(Y, 1) End Sub That produces the following result in the intermediate window: 1 1 1 4 For some reason Excel seems to interpret NameNunbers2 as an array of 2 rows and 4 columns, but interprets NameNumbers as a single column array of 4 rows. Does anybody know why? |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
The question is why does excel interpret NameNumbers as a single column array
of 4 rows, rather than an array of 1 row and foru columns? "Bob Phillips" wrote: Because that is the way you created them. By adding a semi-colon after the 4 in NameNumbers2, you created a second dimension to the array. -- HTH Bob Phillips "Alasdair Stirling" wrote in message ... I have a worksheet with the numbers 1 to 8 in range d8:g9 and have named range d8:g8 "SheetNumbers" and d8:g9 "SheetNumbers2". I have also defined two workbook names as follows: "NameNumbers" ={1,2,3,4} and "NameNumbers2" ={1,2,3,4;5,6,7,8}. I have a vba procedure as follows: Sub alpha() Dim X As Variant, Y As Variant X = Sheet1.Range("SheetNumbers2") Y = [NameNumbers2] Debug.Print LBound(X, 1); UBound(X, 1) Debug.Print LBound(Y, 1); UBound(Y, 1) End Sub That produces the following result in the intermediate window: 1 2 1 2 So far so good, but I also have another procedure as follows: Sub bravo() Dim X As Variant, Y As Variant X = Sheet1.Range("SheetNumbers") Y = [NameNumbers] Debug.Print LBound(X, 1); UBound(X, 1) Debug.Print LBound(Y, 1); UBound(Y, 1) End Sub That produces the following result in the intermediate window: 1 1 1 4 For some reason Excel seems to interpret NameNunbers2 as an array of 2 rows and 4 columns, but interprets NameNumbers as a single column array of 4 rows. Does anybody know why? |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
It interprest NameNumbers as a 1 dimensional array. You are interpreting
it as four rows. Excel interprets it as 4 columns (A horizontal array is the common term). VBA doesn't care. It sees it as a 1 dimensional array and a one dimensional array has neither rows nor columns - just 4 elements. To see Excels interpretation, select A1:A4 and enter =NameNumbers Ctrl+shift+Enter and you will see a column of 1's (the first element of the array listed 4 times) Select B1:E1 and do the same. You will see 1 2 3 4 -- Regards, Tom Ogilvy "Alasdair Stirling" wrote in message ... The question is why does excel interpret NameNumbers as a single column array of 4 rows, rather than an array of 1 row and foru columns? "Bob Phillips" wrote: Because that is the way you created them. By adding a semi-colon after the 4 in NameNumbers2, you created a second dimension to the array. -- HTH Bob Phillips "Alasdair Stirling" wrote in message ... I have a worksheet with the numbers 1 to 8 in range d8:g9 and have named range d8:g8 "SheetNumbers" and d8:g9 "SheetNumbers2". I have also defined two workbook names as follows: "NameNumbers" ={1,2,3,4} and "NameNumbers2" ={1,2,3,4;5,6,7,8}. I have a vba procedure as follows: Sub alpha() Dim X As Variant, Y As Variant X = Sheet1.Range("SheetNumbers2") Y = [NameNumbers2] Debug.Print LBound(X, 1); UBound(X, 1) Debug.Print LBound(Y, 1); UBound(Y, 1) End Sub That produces the following result in the intermediate window: 1 2 1 2 So far so good, but I also have another procedure as follows: Sub bravo() Dim X As Variant, Y As Variant X = Sheet1.Range("SheetNumbers") Y = [NameNumbers] Debug.Print LBound(X, 1); UBound(X, 1) Debug.Print LBound(Y, 1); UBound(Y, 1) End Sub That produces the following result in the intermediate window: 1 1 1 4 For some reason Excel seems to interpret NameNunbers2 as an array of 2 rows and 4 columns, but interprets NameNumbers as a single column array of 4 rows. Does anybody know why? |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Arrays/Names in spreadsheet. | Excel Discussion (Misc queries) | |||
Arrays & Defined Names | Excel Discussion (Misc queries) | |||
Linking arrays and Worksheet names | Excel Worksheet Functions | |||
Passing variant arrays to C/C++ dll's | Excel Programming | |||
Excel - DotNet - Variant Arrays as Params | Excel Programming |