Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
The first line works fine to set the block of cells...
Why won't the 2nd line work? (results are all cells are blank, the "1"'s all get wiped out) Range("F3:H6").Value = "1" Range("F3:H6").Value = Array(Array("1", "2", "3"), Array("4", "5", "6"), Array("7", "8", "9"), Array("10", "11", "12")) 2nd line should all be on 1 line in the VBE; I also tried making the data just integers... Array(1,2,3).... but that did the same thing. What is the best/better way to assign a user-type module level multidim array to a contiguous block of cells? Using a loop to scroll through the 2 dimensions and assigning each value to a cell (via range.offset.value) sure seems slow (even with screen updating off and calculation off) Is there a way to set up the definition of an array that can be directly assigned to a range of cells? I.E: [F3:H6] = myarray Where myarray matches the cell blocks in dimension. -- Regards, John |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
To assign an array to a range it has to be a 1-based 2-D array and if the
whole array has to go to the whole range than the range and the array must have the same number of rows and columns. So for example this will work: Sub test() Dim i As Long Dim c As Long Dim n As Long Dim arr(1 To 4, 1 To 3) As Long For i = 1 To 4 For c = 1 To 3 n = n + 1 arr(i, c) = n Next Next Range(Cells(3, 6), Cells(6, 8)) = arr End Sub RBS "John Keith" wrote in message ... The first line works fine to set the block of cells... Why won't the 2nd line work? (results are all cells are blank, the "1"'s all get wiped out) Range("F3:H6").Value = "1" Range("F3:H6").Value = Array(Array("1", "2", "3"), Array("4", "5", "6"), Array("7", "8", "9"), Array("10", "11", "12")) 2nd line should all be on 1 line in the VBE; I also tried making the data just integers... Array(1,2,3).... but that did the same thing. What is the best/better way to assign a user-type module level multidim array to a contiguous block of cells? Using a loop to scroll through the 2 dimensions and assigning each value to a cell (via range.offset.value) sure seems slow (even with screen updating off and calculation off) Is there a way to set up the definition of an array that can be directly assigned to a range of cells? I.E: [F3:H6] = myarray Where myarray matches the cell blocks in dimension. -- Regards, John |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
RB Smissaert wrote:
To assign an array to a range it has to be a 1-based 2-D array . . . . The array needs to be neither 1-based nor 2-D Sub test() Dim i As Long Dim c As Long Dim n As Long Dim arr(0 To 3, 0 To 2) As Long For i = 0 To 3 For c = 0 To 2 n = n + 1 arr(i, c) = n Next Next Range(Cells(3, 6), Cells(6, 8)) = arr End Sub works, as does Dim arr(0 to 3) For i = 0 to 3 arr(i) = i Next Range("A1:C1").Value = arr Alan Beban |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Yes, you are right there.
I was thinking to make it easy for the particular example, but of course people other than the OP will read it. RBS "Alan Beban" wrote in message ... RB Smissaert wrote: To assign an array to a range it has to be a 1-based 2-D array . . . . The array needs to be neither 1-based nor 2-D Sub test() Dim i As Long Dim c As Long Dim n As Long Dim arr(0 To 3, 0 To 2) As Long For i = 0 To 3 For c = 0 To 2 n = n + 1 arr(i, c) = n Next Next Range(Cells(3, 6), Cells(6, 8)) = arr End Sub works, as does Dim arr(0 to 3) For i = 0 to 3 arr(i) = i Next Range("A1:C1").Value = arr Alan Beban |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
problem assigning range returned by function, to combobox rowsource | Excel Programming | |||
Assigning ranges for values (e.g., $1,005 the range is ">$1K to 5K | Excel Worksheet Functions | |||
problem with Paste-Special-Values from a List (range of cells) | Excel Programming | |||
Problem with assigning values to items in collection | Excel Programming | |||
Assigning values from a selected range to individual variables | Excel Programming |