|
本帖最后由 乐乐2006201505 于 2018-1-25 12:03 编辑
用下面代码计算出准确年龄,然后用后边代码统计年龄段。
Sub test11()
For i = 2 To Cells(Rows.Count, 2).END(3).Row
Range("e" & i) = DateDiff("yyyy", Range("d" & i), Date) + (Date < DateSerial(Year(Date), Month(Range("d" & i)), Day(Range("d" & i))))
Next
End Sub
Sub b2Test4统计年龄段人数()
Dim Conn As Object, Rst As Object
Dim strConn As String, strSQL As String
Dim i As Integer, PathStr As String
Set Conn = CreateObject("ADODB.Connection")
Set Rst = CreateObject("ADODB.Recordset")
PathStr = ThisWorkbook.FullName '设置工作簿的完整路径和名称
Select Case Application.Version * 1 '设置连接字符串,根据版本创建连接
Case Is <= 11
strConn = "Provider=Microsoft.Jet.Oledb.4.0;Extended Properties=excel 8.0;Data source=" & PathStr
Case Is >= 12
strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & PathStr & ";Extended Properties=""Excel 12.0;HDR=YES"";"""
End Select
'设置SQL查询语句 datediff(yyyy,col1,getdate()) as
strSQL = "select partition(年龄,36,90,5) as 年龄段, count(年龄段) as 个数 from [Sheet1$] GROUP BY partition(年龄,36,90,5)" ' where DateDiff(yyyy,出生年月,getdate())>=25
Conn.Open strConn '打开数据库链接
Set Rst = Conn.Execute(strSQL) '执行查询,并将结果输出到记录集对象
With Sheet2.Range("f:g")
.Cells.Clear
For i = 0 To Rst.Fields.Count - 1 '填写标题
.Cells(1, i + 1) = Rst.Fields(i).Name
Next i
.Range("A2").CopyFromRecordset Rst
.Cells.EntireColumn.AutoFit '自动调整列宽
End With
Rst.Close '关闭数据库连接
Conn.Close
Set Conn = Nothing
Set Rst = Nothing
End Sub
编号 | 姓名 | 性别 | 出生年月 | 年龄 | 职称 | 部门 | 基本工资 | 婚否 | 奖金 | 1103 | 陈红 | 女 | 1976-2-3 | 41 | 助教 | 电路实验室 | 270 | F | 30 | 1602 | 冯卫东 | 男 | 1960-1-24 | 58 | 讲师 | 培训中心 | 341 | T | 50 | 0802 | 何兵 | 男 | 1972-11-23 | 45 | 副教授 | 软件中心 | 560 | F | 35 | 2208 | 景平 | 女 | 1950-7-7 | 67 | 研究员 | 仿真实验室 | 501 | T | 60 | 0800 | 吕一平 | 男 | 1963-3-12 | 54 | 工程师 | 软件中心 | 360 | T | 70 | 1102 | 王军 | 男 | 1938-11-23 | 79 | 高工 | 电路实验室 | 720 | T | 30 | 1107 | 陶玉蓉 | 女 | 1979-7-8 | 38 | 助工 | 电路实验室 | 240 | F | 30 | 1611 | 王军旗 | 男 | 1971-7-26 | 46 | 高工 | 培训中心 | 380 | F | 40 | 0801 | 吴刚 | 男 | 1970-1-1 | 48 | 研究员 | 软件中心 | 560 | F | 20 | 2212 | 陈磊 | 男 | 1968-11-23 | 49 | 工程师 | 仿真实验室 | 340 | T | 60 | 1104 | 许玉琳 | 女 | 1954-5-1 | 63 | 研究员 | 电路实验室 | 500 | T | 40 | 1609 | 杨华 | 男 | 1975-4-25 | 42 | 助工 | 培训中心 | 220 | F | 50 | 1610 | 张武 | 男 | 1955-8-8 | 62 | 高工 | 培训中心 | 400 | T | 80 | 1105 | 赵强 | 男 | 1966-6-8 | 51 | 工程师 | 电路实验室 | 330 | T | 30 | 0807 | 杨华 | 女 | 1970-5-15 | 47 | 工程师 | 软件中心 | 301 | T | 50 | 2216 | 张山 | 男 | 1935-11-11 | 82 | 教授 | 仿真实验室 | 820 | T | 50 | 0805 | 杨华 | 女 | 1954-2-12 | 63 | 副教授 | 软件中心 | 500 | T | 60 | 1115 | 张三丰 | 女 | 1968-7-11 | 49 | 研究员 | 电路实验室 | 540 | T | 30 |
|
评分
-
1
查看全部评分
-
|