Put ()
around the array:
Sub test()
Dim arrCols As Variant
arrCols = Array(1, 2)
'/This here works
Sheet1.Range("$A$1:$B$10").RemoveDuplicates Columns:=Array(1, 2), Header _
:=xlYes
'/ Same code fails when the columns array is passed via variable
'/ Error 5: Invalid procedure call or argument
Sheet1.Range("$A$1:$B$10").RemoveDuplicates Columns:=(arrCols), Header _
:=xlYes
End Sub
It has to do with what vba is expecting to see.