The hard-coded reference must be the problem:
Dim row As String() = New String() {cell(0).Value, cell(1).Value, cell(2).Value}
You need to know how to handle errors. Either go through each item in a for[each] loop or check the the
cell
array contains that many items.
You will find that
cell
array is either empty or has fewer than 3 items.
Calling cell(2) when cell.Length is less than 3 will throw that error