Q tal buena tarde.
Veran tengo dos datatable
uno que es dt
Dim strcon As String
strcon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + TextBox1.Text + ";Extended Properties='Excel 12.0 Xml;HDR=YES;'"
Dim micon As New OleDbConnection(strcon)
Dim ad As New OleDbDataAdapter("Select * from [Hoja1$]", micon)
micon.Open()
ad.Fill(dt)
DataGridView1.DataSource = dt

micon.Close()

y el otro que es dts

Private Sub busqueda()
conection()
Dim sql As String = "SELECT count(clave), clave " & _
"FROM Personal " & _
"GROUP BY clave " '& _
'"HAVING COUNT(clave)<2 "


Dim comand As New OleDbCommand(sql, conexion)
Dim adaptador As New OleDbDataAdapter(comand)
adaptador.Fill(dts)
DataGridView2.DataSource = dts


End Sub

de dichos table necesito extraer exclusivamente los datos de dt que no coincidan en dts este es el codigo con el que he intentado pero no me ha resultado de antemano gracIas POR SU AYUDA

Dim dt2 As DataTable = DirectCast(DataGridView1.DataSource, DataTable)
Dim c As Integer = 0
Dim rows() As DataRow
Dim templ As New DataTable("temp")
templ.Columns.Add("STATUS")
templ.Columns.Add("CLAVE")
templ.Columns.Add("NOMBRE")
templ.Columns.Add("CATEGORIA")
templ.Columns.Add("Estación")
templ.Columns.Add("RFC")
For Each filas As DataRow In dts.Rows
Dim value As String = filas.ItemArray(1).ToString
rows = dt2.Select("clave <> '" & value & "'")
If rows.Length <> 0 Then
c = c + 1
templ.ImportRow(rows(c)) '---aqui hay error para manda el arraY DE FILAS "ROWS" A LA TABLA TEMPL
End If

Next
DataGridView3.DataSource = templ
MessageBox.Show(c.ToString)