ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Set Array equal to Range (https://www.excelbanter.com/excel-programming/420050-set-array-equal-range.html)

RyanH

Set Array equal to Range
 
I currently have an array of userform control values. I need to list these
controls values in a column. I currently use a For...Next Loop to list the
elements, but I would like to not use a loop. The could I have below doesn't
work, why?

Option Base 1

Sub Test()

Dim aryControls As Variant

aryControls = Array(Control1, Control2, Control3, etc.)
Sheets("Data Storage").Range(Cells(1, lngColumn), Cells(UBound(ctlArray),
lngColumn)).Value = ctlArray

End Sub
--
Cheers,
Ryan

RB Smissaert

Set Array equal to Range
 
To write an array to a range the array will have to be a 2-D array and yours
is a 1-D array.
Why worry about the For Next loop? Your array is very small, so
performance-wise it won't make a difference.

RBS


"RyanH" wrote in message
...
I currently have an array of userform control values. I need to list these
controls values in a column. I currently use a For...Next Loop to list
the
elements, but I would like to not use a loop. The could I have below
doesn't
work, why?

Option Base 1

Sub Test()

Dim aryControls As Variant

aryControls = Array(Control1, Control2, Control3, etc.)
Sheets("Data Storage").Range(Cells(1, lngColumn), Cells(UBound(ctlArray),
lngColumn)).Value = ctlArray

End Sub
--
Cheers,
Ryan



RyanH

Set Array equal to Range
 
I really would like to learn how. The Loop works great, but I am trying to
learn to work with Array a little more. Is there a way to make it a
2-dimensional Array and make this code work?
--
Cheers,
Ryan


"RB Smissaert" wrote:

To write an array to a range the array will have to be a 2-D array and yours
is a 1-D array.
Why worry about the For Next loop? Your array is very small, so
performance-wise it won't make a difference.

RBS


"RyanH" wrote in message
...
I currently have an array of userform control values. I need to list these
controls values in a column. I currently use a For...Next Loop to list
the
elements, but I would like to not use a loop. The could I have below
doesn't
work, why?

Option Base 1

Sub Test()

Dim aryControls As Variant

aryControls = Array(Control1, Control2, Control3, etc.)
Sheets("Data Storage").Range(Cells(1, lngColumn), Cells(UBound(ctlArray),
lngColumn)).Value = ctlArray

End Sub
--
Cheers,
Ryan




RB Smissaert

Set Array equal to Range
 
Well, you can dim a 2-D array, loop through your 1-D array and copy to the
2-D array, but you won't gain much there.

RBS


"RyanH" wrote in message
...
I really would like to learn how. The Loop works great, but I am trying to
learn to work with Array a little more. Is there a way to make it a
2-dimensional Array and make this code work?
--
Cheers,
Ryan


"RB Smissaert" wrote:

To write an array to a range the array will have to be a 2-D array and
yours
is a 1-D array.
Why worry about the For Next loop? Your array is very small, so
performance-wise it won't make a difference.

RBS


"RyanH" wrote in message
...
I currently have an array of userform control values. I need to list
these
controls values in a column. I currently use a For...Next Loop to list
the
elements, but I would like to not use a loop. The could I have below
doesn't
work, why?

Option Base 1

Sub Test()

Dim aryControls As Variant

aryControls = Array(Control1, Control2, Control3, etc.)
Sheets("Data Storage").Range(Cells(1, lngColumn),
Cells(UBound(ctlArray),
lngColumn)).Value = ctlArray

End Sub
--
Cheers,
Ryan





RyanH

Set Array equal to Range
 
So there is no way to set a Variant Variable to a 2D Array? For example,

ctrlArray = Array(Array(Control1, Control2, etc.),Array(""))
--
Cheers,
Ryan


"RB Smissaert" wrote:

Well, you can dim a 2-D array, loop through your 1-D array and copy to the
2-D array, but you won't gain much there.

RBS


"RyanH" wrote in message
...
I really would like to learn how. The Loop works great, but I am trying to
learn to work with Array a little more. Is there a way to make it a
2-dimensional Array and make this code work?
--
Cheers,
Ryan


"RB Smissaert" wrote:

To write an array to a range the array will have to be a 2-D array and
yours
is a 1-D array.
Why worry about the For Next loop? Your array is very small, so
performance-wise it won't make a difference.

RBS


"RyanH" wrote in message
...
I currently have an array of userform control values. I need to list
these
controls values in a column. I currently use a For...Next Loop to list
the
elements, but I would like to not use a loop. The could I have below
doesn't
work, why?

Option Base 1

Sub Test()

Dim aryControls As Variant

aryControls = Array(Control1, Control2, Control3, etc.)
Sheets("Data Storage").Range(Cells(1, lngColumn),
Cells(UBound(ctlArray),
lngColumn)).Value = ctlArray

End Sub
--
Cheers,
Ryan





RB Smissaert

Set Array equal to Range
 
Don't think so.

RBS


"RyanH" wrote in message
...
So there is no way to set a Variant Variable to a 2D Array? For example,

ctrlArray = Array(Array(Control1, Control2, etc.),Array(""))
--
Cheers,
Ryan


"RB Smissaert" wrote:

Well, you can dim a 2-D array, loop through your 1-D array and copy to
the
2-D array, but you won't gain much there.

RBS


"RyanH" wrote in message
...
I really would like to learn how. The Loop works great, but I am trying
to
learn to work with Array a little more. Is there a way to make it a
2-dimensional Array and make this code work?
--
Cheers,
Ryan


"RB Smissaert" wrote:

To write an array to a range the array will have to be a 2-D array and
yours
is a 1-D array.
Why worry about the For Next loop? Your array is very small, so
performance-wise it won't make a difference.

RBS


"RyanH" wrote in message
...
I currently have an array of userform control values. I need to list
these
controls values in a column. I currently use a For...Next Loop to
list
the
elements, but I would like to not use a loop. The could I have
below
doesn't
work, why?

Option Base 1

Sub Test()

Dim aryControls As Variant

aryControls = Array(Control1, Control2, Control3, etc.)
Sheets("Data Storage").Range(Cells(1, lngColumn),
Cells(UBound(ctlArray),
lngColumn)).Value = ctlArray

End Sub
--
Cheers,
Ryan






Dana DeLouis

Set Array equal to Range
 
but I would like to not use a loop.

Hi. These are not controls, but does this idea help?

Sub Demo()
Dim v
v = Array(11, 12, 13)

Range("B1").Resize(3) = WorksheetFunction.Transpose(v)
End Sub

- - -
HTH
Dana DeLouis



RyanH wrote:
I currently have an array of userform control values. I need to list these
controls values in a column. I currently use a For...Next Loop to list the
elements, but I would like to not use a loop. The could I have below doesn't
work, why?

Option Base 1

Sub Test()

Dim aryControls As Variant

aryControls = Array(Control1, Control2, Control3, etc.)
Sheets("Data Storage").Range(Cells(1, lngColumn), Cells(UBound(ctlArray),
lngColumn)).Value = ctlArray

End Sub



All times are GMT +1. The time now is 05:08 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com