You can't, in my opinion. When you pass an array into Sumif when it is expecting a range, it returns a type mismatch. You can try using this Sumif substitute that I made.
Testing requires the range A1:B6 to look like this.
| A | B | 
| a | 1 | 
| a | 1 | 
| b | 1 | 
| c | 1 | 
| d | 1 | 
| a | 1 | 
Code:
Sub test()
    Dim arr() As Variant
    arr = Range("A1:B6")
    Debug.Print mySumif(arr, "a", 1, 2)
End Sub
Function mySumif(ByVal arr As Variant, ByVal criteria As Variant, ByVal criteriaColNo As Integer, ByVal sumColNo As Integer) As Double
    For i = LBound(arr) To UBound(arr)
        If arr(i, criteriaColNo) = criteria Then mySumif = mySumif + arr(i, sumColNo)
    Next i
End Function
Output:
3