Hi Team
Need your help in Converting Collection to Array with the help of function.
how to create two dimension array from collection using Function.
'-----------------------------------------------------------------
'Working code
Dummy Data with expected output
Thanks
mg
Need your help in Converting Collection to Array with the help of function.
how to create two dimension array from collection using Function.
VBA Code:
Below is attempted Code
Sub ColltoArray_Help()
Dim arr As Variant
Dim rg As Range
Dim Coll As New Collection
Dim sht As Worksheet
Set sht = ThisWorkbook.Worksheets(1)
arr = Join(Array("Sachin", "Dhoni"), "!")
Set rg = sht.Range("A1").CurrentRegion
Dim i As Long
'Add Data to Dictionary
For i = 2 To rg.Rows.Count
If InStr(1, arr, rg.Cells(i, 1), vbTextCompare) > 0 Then
Coll.Add rg.Rows(i).Value
End If
Next i
Dim a As Variant
a = ColltoArray(Coll)
'Unable to Print getting subscript out of Range
Sheets("Sheet1").Range("K2").Resize(UBound(a), UBound(a, 2)).Value = a
End Sub
VBA Code:
Function ColltoArray(Coll As Collection) As Variant()
Dim arr() As Variant
Dim row As Integer
Dim c As Variant
ReDim arr(Coll.Count - 1) As Variant
row = 0
For Each c In Coll
arr(row) = c
row = row + 1
Next
ColltoArray = arr
End Function
'-----------------------------------------------------------------
'Working code
VBA Code:
Sub test_Array()
Dim ary As Variant, Nary As Variant
Dim c As Long, r As Long, nr As Long
ary = Sheets("Sheet1").Range("a1").CurrentRegion.Value2
ReDim Nary(1 To UBound(ary), 1 To UBound(ary, 2))
For r = 1 To UBound(ary)
If ary(r, 1) = "Sachin" Or ary(r, 1) = "Dhoni" Then
nr = nr + 1
For c = 1 To UBound(ary, 2)
Nary(nr, c) = ary(r, c)
Next c
End If
Next r
Sheets("Sheet1").Range("K2").Resize(nr, UBound(ary, 2)).Value = Nary
End Sub
Dummy Data with expected output
Array_help.xlsm | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | |||
1 | Name | aaa | bbb | ccc | ddd | eee | fff | ggg | Expected Output | Name | aaa | bbb | ccc | ddd | eee | fff | ggg | |||
2 | Sachin | aaa | bbb | ccc | ddd | eee | fff | ggg | Sachin | aaa | bbb | ccc | ddd | eee | fff | ggg | ||||
3 | Dhoni | aaa | bbb | ccc | ddd | eee | fff | ggg | Dhoni | aaa | bbb | ccc | ddd | eee | fff | ggg | ||||
4 | Sachin | aaa | bbb | ccc | ddd | eee | fff | ggg | Sachin | aaa | bbb | ccc | ddd | eee | fff | ggg | ||||
5 | Dhoni | aaa | bbb | ccc | ddd | eee | fff | ggg | Dhoni | aaa | bbb | ccc | ddd | eee | fff | ggg | ||||
6 | Virat | aaa | bbb | ccc | ddd | eee | fff | ggg | Sachin | aaa | bbb | ccc | ddd | eee | fff | ggg | ||||
7 | Sachin | aaa | bbb | ccc | ddd | eee | fff | ggg | Dhoni | aaa | bbb | ccc | ddd | eee | fff | ggg | ||||
8 | Hardik | aaa | bbb | ccc | ddd | eee | fff | ggg | ||||||||||||
9 | Dhoni | aaa | bbb | ccc | ddd | eee | fff | ggg | ||||||||||||
10 | Kapil | aaa | bbb | ccc | ddd | eee | fff | ggg | ||||||||||||
11 | Kapil | aaa | bbb | ccc | ddd | eee | fff | ggg | ||||||||||||
12 | Yuvraj | aaa | bbb | ccc | ddd | eee | fff | ggg | ||||||||||||
Sheet1 |
Thanks
mg