Q:

Type Mismatch Error while looping the array

I'm trying to build the array by looping the data set. 
Values inside are Object/Range type. (e.g. 34FF544)
I get the "type mismatch" error.
Dim arr2 As Variant
Dim y As Long
Dim eil As Long

eil = 1
y = 1

Do Until Sheets(2).Range("A" & eil) = ""   'looping until the blank cell
arr2(y) = Range("A" & eil)                 'storing the value in an array

y = y + 1                                  'next array element
eil = eil + 1                              'next row to take value from
Loop

A:

The way you are currently populating an array is dynamic and for that you need to adjust two things:

"By declaring a dynamic array, you can size the array while the code
  is running. Use a Static, Dim, Private, or Public statement to declare
  an array, leaving the parentheses empty."Office Dev Center

So make sure you start your code with Dim arr2() As Variant
The second thing is that because you use a dynamic array, you have the option to resize the array before your loop, however you can also resize your array on the go, which is your route:
Do Until Sheets(2).Range("A" & eil) = ""
    ReDim Preserve arr2(y) 'This is your key!
    arr2(y) = Range("A" & eil)                 
    y = y + 1
    eil = eil + 1
Loop

Now that you know the culprit, it's also good to have a look at how sufficient your code actually is. Few things that come to mind:

You have both y and eil going on the same count, why not just use one of them?
You can just load your array from a range in one go
Also, you should look into naming your worksheet and run code through a With... End With

