ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Read range to array (https://www.excelbanter.com/excel-programming/391153-read-range-array.html)

Arne Hegefors

Read range to array
 
Hi! I have a range. I want to loop through the range and place the values
from the cells into an array. However i have some trouble with the code. I
write:

Set rngCorr = ThisWorkbook.Sheets("Counterparty").Range("FactorC orrRange")
NoR = rngCorr.Rows.Count
ReDim dblCorrArray(NoR)
'here are the different correlations for the factos set
For i = 0 To NoR
dblCorrArray(i) = Range("FactorCorrRange").Offset(i, 0).Value
Next

I ger error 13 incompatible types. How shall i write the code? pls help!


John Keith[_2_]

Read range to array
 

Dim vaFCR As Variant
vaFCR = ThisWorkbook.Sheets("Counterparty").Range("FactorC orrRange").Value

This code will load your FactorCorrRange into a 2d array.
Use UBound(vaFCR,1) and UBound(vaFCR,2) to get the upper end points for each
of the dimensions. Both dimensions will begin at 1, not 0 (so be careful,
since this is different than the norm when dimensioning arrays, depending on
the "option base #" statement)

If anyone can point to a good way to make this a 1d array (other than making
a single cell reference and then using .offset to load each cell individually
to the array element in a loop)... That is what I was looking for when I
loaded the newsgroup this morning.


--
Regards,
John


"Arne Hegefors" wrote:

Hi! I have a range. I want to loop through the range and place the values
from the cells into an array. However i have some trouble with the code. I
write:

Set rngCorr = ThisWorkbook.Sheets("Counterparty").Range("FactorC orrRange")
NoR = rngCorr.Rows.Count
ReDim dblCorrArray(NoR)
'here are the different correlations for the factos set
For i = 0 To NoR
dblCorrArray(i) = Range("FactorCorrRange").Offset(i, 0).Value
Next

I ger error 13 incompatible types. How shall i write the code? pls help!


Tom Ogilvy

Read range to array
 
For a single column Range
v = Application.Transpose(Range("G1:G10").Value)

v is a 1d array.

If the range were Horizonal (single row range), then you would need

v =Application.Transpose(Application.Transpose(Range ("A1:M1").Value))

--
Regards,
Tom Ogilvy

"John Keith" wrote:


Dim vaFCR As Variant
vaFCR = ThisWorkbook.Sheets("Counterparty").Range("FactorC orrRange").Value

This code will load your FactorCorrRange into a 2d array.
Use UBound(vaFCR,1) and UBound(vaFCR,2) to get the upper end points for each
of the dimensions. Both dimensions will begin at 1, not 0 (so be careful,
since this is different than the norm when dimensioning arrays, depending on
the "option base #" statement)

If anyone can point to a good way to make this a 1d array (other than making
a single cell reference and then using .offset to load each cell individually
to the array element in a loop)... That is what I was looking for when I
loaded the newsgroup this morning.


--
Regards,
John


"Arne Hegefors" wrote:

Hi! I have a range. I want to loop through the range and place the values
from the cells into an array. However i have some trouble with the code. I
write:

Set rngCorr = ThisWorkbook.Sheets("Counterparty").Range("FactorC orrRange")
NoR = rngCorr.Rows.Count
ReDim dblCorrArray(NoR)
'here are the different correlations for the factos set
For i = 0 To NoR
dblCorrArray(i) = Range("FactorCorrRange").Offset(i, 0).Value
Next

I ger error 13 incompatible types. How shall i write the code? pls help!



All times are GMT +1. The time now is 01:35 PM.

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