Làm cho bạn = ado
Code trong sheet Filter1
[GPECODE=sql]Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$2" Then
Set adoConn = CreateObject("ADODB.Connection")
Set adoRS = CreateObject("ADODB.Recordset")
With adoConn
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & ThisWorkbook.FullName & _
";Extended Properties=""Excel 8.0;HDR=No;IMEX=1"";"
.Open
End With
With adoRS
.ActiveConnection = adoConn
.Open "select f2,f3,f4,f5,f6,f7,f8,f9,f1 from [Data$A5:I1000] " _
& "where f3 is not null and f5 like '" & Sheet2.Range("D2").Value & "'"
End With
With Sheets("Filter1")
.[B6:J65000].ClearContents
.[B6].CopyFromRecordset adoRS
End With
adoRS.Close: Set adoRS = Nothing
adoConn.Close: Set adoConn = Nothing
End If
End Sub
[/GPECODE]
Code trong sheet Filter2
[GPECODE=sql]Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, [D2

4]) Is Nothing Then
Set adoConn = CreateObject("ADODB.Connection")
Set adoRS = CreateObject("ADODB.Recordset")
With adoConn
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & ThisWorkbook.FullName & _
";Extended Properties=""Excel 8.0;HDR=No;IMEX=1"";"
.Open
End With
With adoRS
.ActiveConnection = adoConn
.Open "select f2,f3,f4,f5,f6,f7,f8,f9 from [Data$A5:I1000] " _
& "where f3 is not null and f5 like '" & Sheet3.Range("D2").Value & "' and f7 like '" _
& Sheet3.Range("D3").Value & "' and f9 like '" & Sheet3.Range("D4").Value & "'"
End With
With Sheets("Filter2")
.[B7:J65000].ClearContents
.[B7].CopyFromRecordset adoRS
End With
adoRS.Close: Set adoRS = Nothing
adoConn.Close: Set adoConn = Nothing
End If
End Sub
[/GPECODE]