|
使用了SQL的 left join
问题是:没有按照A表的原来顺序给出对应B表的数据
而是将A表的字段重新排序后,给出了B表的数据
ZHAOGANG 老师出面看看吧
- Set SH1 = Sheets("数据源")
- Set SH2 = Sheets("数据导入的表格")
- SH2.Range("B2:J65536").ClearContents
-
- Str_coon = "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties='Excel 12.0;HDR=yes';Data Source =" & ThisWorkbook.FullName '//OFFICE2007
-
- StrSQL = ""
- StrSQL = StrSQL & "SELECT A.序号,B.序号,B.B,B.C,B.D,B.E,B.F,B.G,B.H,B.I,B.J,B.K,B.L,B.M,B.N FROM ( "
- StrSQL = StrSQL & "SELECT 序号 FROM [" & SH2.Name & "$]"
- StrSQL = StrSQL & ") AS A LEFT JOIN ("
- StrSQL = StrSQL & "SELECT * FROM [" & SH1.Name & "$] "
- StrSQL = StrSQL & ") AS B ON A.序号=B.序号"
- SQLARR = GET_SQL_To_Arr(StrSQL, Str_coon, True)
- Set SH3 = Sheets("结果")
- SH3.Cells.Clear
- SH3.Range("A1").Resize(UBound(SQLARR, 1) + 1, UBound(SQLARR, 2) + 1) = SQLARR
复制代码 |
|