Tạo thêm 1 sheet mới là sheet ketqua. Chạy thử code sau:
[GPECODE=sql]Sub LayDL()
Dim cn As Object, rst As Object
Dim mySQL As String
Set cn = CreateObject("ADODB.Connection")
Set rst = CreateObject("ADODB.Recordset")
With cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & ThisWorkbook.FullName & _
";Extended Properties=""Excel 8.0;HDR=No;IMEX=1"";"
.Open
End With
mySQL = ""
mySQL = "SELECT DISTINCT F2,"
mySQL = mySQL & " F3,"
mySQL = mySQL & " F4,"
mySQL = mySQL & " FORMAT(F5,'dd-MM-yyyy'),"
mySQL = mySQL & " F6,"
mySQL = mySQL & " F7,"
mySQL = mySQL & " F8"
mySQL = mySQL & " FROM ( "
mySQL = mySQL & " SELECT * "
mySQL = mySQL & " FROM [Sheet1$A4:H20]"
mySQL = mySQL & " Union ALL "
mySQL = mySQL & " SELECT * "
mySQL = mySQL & " FROM [Sheet2$A4:H22])"
Set rst = cn.Execute(mySQL)
With Sheets("ketqua")
.[A2:H1000].ClearContents
.[A2].CopyFromRecordset rst
End With
rst.Close: cn.Close
Set rst = Nothing: Set cn = Nothing
End Sub
[/GPECODE]