ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   2 dimensional array (https://www.excelbanter.com/excel-programming/420322-2-dimensional-array.html)

Mike

2 dimensional array
 
This is what i do for a 1 dimensional array but i wondering how
to do a 2 dimensional. Then have Range("M" & x) = the first dimension
and have Range("M" & x).offset(0,1) = the second dimension. Just starting to
understand arrays.

Dim arrEmployee() As Variant
Dim strEmployee As Variant
Dim rng As Range
Dim x As Long
Set rng = Range(Cells(2, 3), Cells(Rows.Count, 3).End(xlUp))
x = 0
ReDim arrEmployee(1 To rng.Rows.Count)
For Each cell In rng
x = x + 1
arrEmployee(x) = cell.Value
Next cell

x = 2
For Each strEmployee In arrEmployee
Range("M" & x) = strEmployee
x = x + 1
Next

Dave Peterson

2 dimensional array
 
You can actually pickup the value from a range and end up with a 2 dimensional
array.

This would create a 2 dimensional array (5 rows by 1 column)
dim myArr as variant
myArr = activesheet.range("a1:A5").value

This would create a 2 dimensional array (5 rows by 2 columns)
dim myArr as variant
myArr = activesheet.range("a1:b5").value

So maybe you could use something like:

dim myArr as variant
with activesheet
myArr = activesheet.range("C2:D" & .cells(.rows.count,"C").end(xlup).row).value
end with







Mike wrote:

This is what i do for a 1 dimensional array but i wondering how
to do a 2 dimensional. Then have Range("M" & x) = the first dimension
and have Range("M" & x).offset(0,1) = the second dimension. Just starting to
understand arrays.

Dim arrEmployee() As Variant
Dim strEmployee As Variant
Dim rng As Range
Dim x As Long
Set rng = Range(Cells(2, 3), Cells(Rows.Count, 3).End(xlUp))
x = 0
ReDim arrEmployee(1 To rng.Rows.Count)
For Each cell In rng
x = x + 1
arrEmployee(x) = cell.Value
Next cell

x = 2
For Each strEmployee In arrEmployee
Range("M" & x) = strEmployee
x = x + 1
Next


--

Dave Peterson

joel

2 dimensional array
 
Dim arrEmployee() As Variant
Dim strEmployee As Variant
Dim rng As Range
Dim x As Long
Set rng = Range(Cells(2, 3), Cells(Rows.Count, 3).End(xlUp))
x = 0
ReDim arrEmployee(1 To rng.Rows.Count,2)
For Each cell In rng
x = x + 1
arrEmployee(x,1) = cell.Value
arrEmployee(x,2) = cell.offset(0,1).Value
Next cell

x = 2
For EmployeeCount = 1 to Ubound(arrEmployee)
Range("M" & x) = arrEmployee(EmployeeCount,1)
Range("M" & x).offset(0,1) = arrEmployee(EmployeeCount,2)
x = x + 1
Next

"Mike" wrote:

This is what i do for a 1 dimensional array but i wondering how
to do a 2 dimensional. Then have Range("M" & x) = the first dimension
and have Range("M" & x).offset(0,1) = the second dimension. Just starting to
understand arrays.

Dim arrEmployee() As Variant
Dim strEmployee As Variant
Dim rng As Range
Dim x As Long
Set rng = Range(Cells(2, 3), Cells(Rows.Count, 3).End(xlUp))
x = 0
ReDim arrEmployee(1 To rng.Rows.Count)
For Each cell In rng
x = x + 1
arrEmployee(x) = cell.Value
Next cell

x = 2
For Each strEmployee In arrEmployee
Range("M" & x) = strEmployee
x = x + 1
Next


Mike

2 dimensional array
 
Thanks Joel

"Joel" wrote:

Dim arrEmployee() As Variant
Dim strEmployee As Variant
Dim rng As Range
Dim x As Long
Set rng = Range(Cells(2, 3), Cells(Rows.Count, 3).End(xlUp))
x = 0
ReDim arrEmployee(1 To rng.Rows.Count,2)
For Each cell In rng
x = x + 1
arrEmployee(x,1) = cell.Value
arrEmployee(x,2) = cell.offset(0,1).Value
Next cell

x = 2
For EmployeeCount = 1 to Ubound(arrEmployee)
Range("M" & x) = arrEmployee(EmployeeCount,1)
Range("M" & x).offset(0,1) = arrEmployee(EmployeeCount,2)
x = x + 1
Next

"Mike" wrote:

This is what i do for a 1 dimensional array but i wondering how
to do a 2 dimensional. Then have Range("M" & x) = the first dimension
and have Range("M" & x).offset(0,1) = the second dimension. Just starting to
understand arrays.

Dim arrEmployee() As Variant
Dim strEmployee As Variant
Dim rng As Range
Dim x As Long
Set rng = Range(Cells(2, 3), Cells(Rows.Count, 3).End(xlUp))
x = 0
ReDim arrEmployee(1 To rng.Rows.Count)
For Each cell In rng
x = x + 1
arrEmployee(x) = cell.Value
Next cell

x = 2
For Each strEmployee In arrEmployee
Range("M" & x) = strEmployee
x = x + 1
Next



All times are GMT +1. The time now is 10:16 AM.

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