SELECT * FROM [一班$] UNION SELECT * FROM [二班$] SELECT 姓名 FROM [一班$] UNION SELECT 姓名 FROM [二班$] SELECT 姓名 FROM [一班$] UNION ALL SELECT 姓名 FROM [二班$] …… 代碼看不全可以左右拖動(dòng)...▼ SELECT 姓名,語文 FROM [一班$] UNION ALL SELECT 姓名 FROM [二班$] 代碼看不全可以左右拖動(dòng)...▼ SELECT 姓名,語文 FROM [一班$] UNION ALL SELECT 語文,姓名 FROM [二班$] 代碼看不全可以左右拖動(dòng)...▼ SELECT 姓名,語文 AS 語文成績 FROM [一班$] UNION ALL SELECT 姓名,語文 FROM [二班$] 代碼看不全可以左右拖動(dòng)...▼ SELECT 姓名,語文,數(shù)學(xué),英語 FROM [一班$] UNION ALL SELECT 姓名,語文,NULL,英語 FROM [二班$]結(jié)果如下: SELECT 姓名,語文,數(shù)學(xué),英語 FROM [一班$] UNION ALL SELECT 姓名,語文,'未考',英語 FROM [二班$] Sub SQL_UNION() Dim cnn As Object, rst As Object Dim strPath As String, str_cnn As String Dim strSQL As String, strTemp As String Dim sht As Worksheet, strShtName As String Dim i As Long Set cnn = CreateObject('adodb.connection') strPath = ThisWorkbook.FullName If Application.Version < 12 Then str_cnn = 'Provider=Microsoft.jet.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source=' & strPath Else str_cnn = 'Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0;Data Source=' & strPath End If cnn.Open str_cnn strTemp = 'SELECT 姓名,語文,數(shù)學(xué),英語,' For Each sht In Worksheets strShtName = sht.Name If strShtName <> ActiveSheet.Name Then strSQL = strSQL & strTemp & ''' & strShtName & '' AS 班級(jí) FROM [' & strShtName & '$] UNION ALL ' End If Next strSQL = Left(strSQL, Len(strSQL) - 11) Set rst = cnn.Execute(strSQL) Cells.ClearContents For i = 0 To rst.Fields.Count - 1 Cells(1, i + 1) = rst.Fields(i).Name Next Range('a2').CopyFromRecordset rst cnn.Close Set cnn = NothingEnd Sub SELECT * FROM [一班$] UNION ALL SELECT * FROM [二班$] |
|
|