Have you tried making use of IsNumeric?
For example:
For Each row As DataRow In dts.Tables("[Sheet1$]").Rows
If IsNumeric(row(0)) Then
If row(0).ToString.StartsWith("98") Then
Dim cell1, cell3 As String
Dim col1, col2, col3, col4 As String
col1 = String.Empty
col2 = String.Empty
col3 = String.Empty
col4 = String.Empty
cell1 = row(0).ToString
cell3 = row(2).ToString
If cell1.Length = 5 Then
col1 = cell1.Substring(0, cell1.Length - 3)
col2 = cell1.Substring(2, cell1.Length - 2)
End If
If cell3.Length = 5 Then
col3 = cell3.Substring(0, cell3.Length - 4)
col3 = cell3.Substring(1, cell3.Length - 2)
End If
DataGridView1.Rows.Add(col1, col2, col3, col4)
End If
End If
Next