Excel高級篩選和宏的結合用法詳解(視頻版),但這個用法有個缺陷,就是不能跨表按條件操作查詢,只能在同一個工作表中操作,恰巧昨天一個VIP學員問我如何跨表操作,我上午用ADO的連接方法寫了一段代碼,但最后老是報錯,問了網上的高手,然來是SQL語句中的符號不對,看來,細節決定成敗啊。舉個個例子:通過表2的年級為條件,將表1中的篩選結果全部顯示在表2。如圖:
下一步:按下Alt+F11,進入VBE后臺編輯環境,插入一個模塊,輸入如下代碼:
Sub Macro1()
Dim conn As Object, Sql As String
‘On Error Resume Next
Set conn = CreateObject("ADODB.Connection")
conn.Open "provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source=" & ThisWorkbook.FullName
Sql = "select * from [表1$] where f14 =’" & Sheets("表2").Range("A3") & "’"
Sheets("表2").[A6:n10000].Clear
Sheets("表2").[A6].CopyFromRecordset conn.Execute(Sql)
conn.Close
Set conn = Nothing
End Sub
最后,在表2工具欄上點擊鼠標右鍵,選擇“窗體”,在彈出的工具箱中選擇命令按鈕,拖動到表2空白處,彈出的指定命令宏中,選擇Macro1,確定。
最后,上面黃色的ADO的用法,其實很簡單,在我的原創教程《物流行業excel編程高清視頻教程》中有詳細的介紹,只是綠色背景部分的Sql語句有變化而已,黃色背景部分沒有大的變化,大家重點要通過Sql語句的寫法注意格式,舉一反三。