Sub ADO()
Dim CON As Object, REC As Object, Arr
Dim FileName As String, StrRequest As String, temp1(), temp2(1 To 10000, 1 To 2)
Dim i As Long, k As Long
Set CON = CreateObject("ADODB.Connection")
Set REC = CreateObject("ADODB.Recordset")
FileName = ThisWorkbook.Path & "\NGUON.xls"
With CON
If Application.Version < 12 Then
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _
& " Data Source=" & FileName & ";Extended Properties=""Excel 8.0;HDR=no;"";"
Else
.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" _
& "Data Source=" & FileName & ";Extended Properties=""Excel 12.0;HDR=no;"";"
End If
.Open
End With
StrRequest = "SELECT * FROM [29$B9:V10000]"
REC.Open StrRequest, CON
Arr = REC.GetRows
temp1 = Range([B13], [b65536].End(3)).Value
With CreateObject("scripting.dictionary")
For i = 1 To UBound(temp1)
If temp1(i, 1) <> "" Then
If Not .exists(temp1(i, 1)) Then
k = k + 1
.Add temp1(i, 1), k
temp2(k, 1) = temp1(i, 1)
End If
End If
Next
For i = [COLOR=#ff0000]0[/COLOR] To UBound(Arr, 2)
If Arr(LBound(Arr, 1), i) <> "" Then
If .exists(Arr(LBound(Arr), i)) Then
temp2(.item(Arr(LBound(Arr), i)), 2) = Arr(UBound(Arr), i)
End If
End If
Next
End With
[B13].Resize(k, 2) = temp2
End Sub