电竞比分网-中国电竞赛事及体育赛事平台

分享

Excel | 如何用VBA SQL篩選多個工作表的數(shù)據(jù)? | VBA,SQL,篩選,數(shù)據(jù)

 L羅樂 2019-07-16

免責聲明:本文來源于網(wǎng)絡,版權歸原創(chuàng)作者所有,如有侵權,請聯(lián)系刪除。

學習一下版主的代碼,把字段名也用代碼加入
Sub a()
    Range('A1:L1000').ClearContents    '清空A2:L1000區(qū)域的數(shù)據(jù)
    Set Conn = CreateObject('adodb.connection')    '創(chuàng)建ADO鏈接方式
    Set rs = CreateObject('adodb.recordset')
    Conn.Open 'provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source=' & ThisWorkbook.FullName    '打開數(shù)據(jù)源鏈接
    For i = 1 To Sheets.Count - 1    '循環(huán)第一個到倒數(shù)第二個工作表
        Sq = Sq & 'select * from [' & Sheets(i).Name & '$] where 積分 > 10 ' & ' union all '    '每個數(shù)據(jù)表的符合積分大于10分的數(shù)據(jù)都進行連接起來
    Next i
    Sq = Left(Sq, Len(Sq) - 11)    '因為循環(huán)倒數(shù)第二個工作表時,sq語句最后還是鏈接到 union all ,一共有11個字符,這時要提取sq字符串中不包含最后11個字符的字符串
    Set rs = Conn.Execute(Sq)
    For i = 1 To rs.Fields.Count                              '把選取的字段名寫到表格
        Sheets('查詢').[a1].Cells(1, i) = rs.Fields(i - 1).Name
    Next
    Sheets('查詢').[A2].CopyFromRecordset rs    '在A2執(zhí)行該SQL語句,并且使用了CopyFromRecordset執(zhí)行方法
    Conn.Close
    Set Conn = Nothing
End Sub

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多