|
|
原帖由 seelookme 于 2011-8-8 16:35 发表 
各位高手,本人想请教一下问题:工作簿里面有四个表(或者更多),表1、表2、表3还有汇总表。那么我现在想把表1、表2、表3各个表里面工资金额超过2000元的员工信息“姓名、性别、部门、岗位和工资”自动汇总到“汇总 ...
请测试
Sub Macro1()
Dim cnn As Object, rs As Object, SQL$, i&
Set cnn = CreateObject("ADODB.Connection")
cnn.Open "provider=microsoft.ace.oledb.12.0;extended properties=excel 12.0;data source=" & ThisWorkbook.FullName
For Each sh In ThisWorkbook.Worksheets
If sh.Name <> "汇总" Then
If SQL <> "" Then SQL = SQL & " union all "
SQL = SQL & "select * from [" & sh.Name & "$] where 工资 between " & [f1] & " and " & [g1]
End If
Next
SQL = "select 姓名,性别,部门,岗位,sum(工资) as 工资 from (" & SQL & ") group by 姓名,性别,部门,岗位" '如果不是求和,把这一句去掉
Set rs = cnn.Execute(SQL)
ActiveSheet.UsedRange.Offset(1).ClearContents
For i = 1 To rs.Fields.Count
Cells(1, i) = rs.Fields(i - 1).Name
Next
Range("A2").CopyFromRecordset rs
rs.Close
cnn.Close
Set rs = Nothing
Set cnn = Nothing
End Sub
[ 本帖最后由 zhaogang1960 于 2011-8-9 08:48 编辑 ] |
|