一步一步教你excel中用VBA自动从一个表按条件把数据填充到另一张表(优选.)
- 格式:doc
- 大小:141.00 KB
- 文档页数:7
精品word.
1 / 7 最新文件---------------- 仅供参考--------------------已改成-----------word文本 --------------------- 方便更改
一步一步教你用VBA自动从一个表按条件把数据填充到另一张表
高考上线与未上线统计,下面是某市2013年高考总分与单科分数线
2013年全市文科分数线
全市人数 一本分数 人数 三本分数 人数
567 372 477 4547
一本 科目 语文 数学 外语 政治 历史 地理 综合
人数 380 426 444 391 476 394 393
分数 112 128 128 71 82 74 217
三本 科目 语文 数学 外语 政治 历史 地理 综合
人数 4739 4754 4691 4732 4671 4547 4575
分数 99 105 99 60 71 57 184
单科分数线以语文为例:全市一本372人,即语文在372名的分数即为语文的上线分数。这里关键统计某人总分上了某一分数线,而单科没上分数线的人数。进一步统计上该科老师头上该科是否努力,是不是拖了后腿。
原始成绩放sheet1表中,统计后的数据放sheet2表中,科任教师名单放sheet3表中,数据如下:
1. 原始成绩表sheet1:
姓名 班级 语文 数学 外语 综合 政治 历史 地理 加分 总分
向恭谱 02 114 126 138 229 67 84.5 77.5 0 607
郑淞方 02 114 127 132 229 72.5 83 73.5 0 602
姜岚 02 110 129 131 230 69 82 79 0 600 精品word.
2 / 7 沈鑫 02 108 137 129 225 72.5 74 78 0 599
陈静 02 112 122 130 233 73 81 79 0 597
蒋儒 02 116 129 126 226 72 81 72.5 0 597
张璇琳 02 116 130 126 224 68 84 71.5 0 596
李罗一帆 02 112 132 128 222 69 79.5 73.5 0 594
廖梓君 02 113 129 125 227 72.5 83 71 0 594
何志文 02 112 112 133 235 76.5 82.5 76 0 592
李昀霞 02 113 127 134 217 69 77 70.5 0 591
刘奕伶 02 110 125 130 222 69.5 84.5 68 0 587
赵原巧 02 110 120 130 226 71 79.5 75.5 0 586
黄莹 06 113 119 123 232 76.5 82 73 0 587
雷凯迪 06 113 109 128 219 67.5 87 64 0 569
梁虹 06 110 126 125 206 71 73.5 61.5 0 567
邓铃 06 109 123 123 211 65.5 72 73 0 566
2.科任教师表sheet3
班 班主任 语文 数学 外语 物理 化学 生物
1 肖友老师 刘 老师 肖友老师 肖雪老师 张长老师 吴明老师 王耀老师
2 陈小老师 邓小老师 向 老师 陈 老师 何继老师 邓君老师 陈小老师
3 张小老师 姚 老师 王春老师 陈 老师 徐文老师 王 老师 张小老师
4 鲜松老师 李 老师 鲜松老师 高乐老师 冯朝老师 李 老师 黄家老师
5 何万老师 敬文老师 何万老师 王文老师 张长老师 陈 老师 黄家老师
6 唐建老师 唐建老师 龙泽老师 高乐老师 魏定老师 唐双老师 林玉老师
7 刘 老师 姚仁老师 刘 老师 冯 老师 杜 老师 吴明老师 王耀老师
8 陈 老师 刘 老师 罗巧老师 赵文老师 冯朝老师 陈 老师 张小老师
9 邓君老师 邓小老师 赵元老师 贾 老师 何继老师 邓君老师 林玉老师
10 敬文老师 敬文老师 鲜松老师 王文老师 徐文老师 吴明老师 张小老师
3.统计结果sheet2: 精品word.
3 / 7 班 姓名 总分 类别 未上线科目 未上线分数 科任教师
02 向恭谱 607 一本 数学 126 向 老师
政治 67 何继老师
02 郑淞方 602 一本 数学 127 向 老师
地理 73.5 陈小老师
02 姜岚 600 一本 语文 110 邓小老师
政治 69 何继老师
02 沈鑫 599 一本 语文 108 邓小老师
历史 74 邓君老师
02 陈静 597 一本 数学 122 向 老师
历史 81 邓君老师
02 蒋儒 597 一本 外语 126 陈 老师
历史 81 邓君老师
地理 72.5 陈小老师
02 张璇琳 596 一本 外语 126 陈 老师
政治 68 何继老师
地理 71.5 陈小老师
02 李罗一帆 594 一本 政治 69 何继老师
历史 79.5 邓君老师
地理 73.5 陈小老师
02 廖梓君 594 一本 外语 125 陈 老师
地理 71 陈小老师
02 何志文 592 一本 数学 112 向 老师
02 李昀霞 591 一本 数学 127 向 老师 精品word.
4 / 7 政治 69 何继老师
历史 77 邓君老师
地理 70.5 陈小老师
02 刘奕伶 587 一本 语文 110 邓小老师
数学 125 向 老师
政治 69.5 何继老师
地理 68 陈小老师
02 赵原巧 586 一本 语文 110 邓小老师
数学 120 向 老师
历史 79.5 邓君老师
06 黄莹 587 一本 数学 119 龙泽老师
外语 123 高乐老师
地理 73 林玉老师
06 雷凯迪 569 一本 数学 109 龙泽老师
政治 67.5 魏定老师
地理 64 林玉老师
06 梁虹 567 一本 语文 110 唐建老师
数学 126 龙泽老师
外语 125 高乐老师
历史 73.5 唐双老师
地理 61.5 林玉老师
下面介绍具体的操作步骤:
一、 把成绩数据按上表的格式放sheet1表中,把科任教师信息看上述格式放sheet3表中。
二、 建立一个VBA;选中sheet2表,点菜单-- --宏---Visual Basic编辑器,打开VBA编辑器。 精品word.
5 / 7 三、 点插入菜单---模块;双击新建的模块1;再点插入菜单下的过程,输入过程名,然后进入代码编辑,把下面的代码复制入代码框即可
Public Sub 测试()
Dim x, y, z, v, bj, bx As Long
x = 2
z = 2
For v = 2 To 2270
If Sheet1.Cells(z, 11) < 710 Then
If Sheet1.Cells(z, 11) >= 567 Then
Sheet2.Cells(x, 2) = Sheet1.Cells(z, 1)
Sheet2.Cells(x, 1) = Sheet1.Cells(z, 2)
Sheet2.Cells(x, 3) = Sheet1.Cells(z, 11)
Sheet2.Cells(x, 4) = "一本"
bj = Sheet1.Cells(z, 2)
'语文
If Sheet1.Cells(z, 3) < 112 Then
Sheet2.Cells(x, 5) = Sheet1.Cells(1, 3)
Sheet2.Cells(x, 6) = Sheet1.Cells(z, 3)
Sheet2.Cells(x, 7) = Sheet3.Cells(bj + 1, 3)
x = x + 1
End If
'数学
If Sheet1.Cells(z, 4) < 128 Then
Sheet2.Cells(x, 5) = Sheet1.Cells(1, 4)
Sheet2.Cells(x, 6) = Sheet1.Cells(z, 4) 精品word.
6 / 7 Sheet2.Cells(x, 7) = Sheet3.Cells(bj + 1, 4)
x = x + 1
End If
'英语
If Sheet1.Cells(z, 5) < 128 Then
Sheet2.Cells(x, 5) = Sheet1.Cells(1, 5)
Sheet2.Cells(x, 6) = Sheet1.Cells(z, 5)
Sheet2.Cells(x, 7) = Sheet3.Cells(bj + 1, 5)
x = x + 1
End If
'政治
If Sheet1.Cells(z, 7) < 71 Then
Sheet2.Cells(x, 5) = Sheet1.Cells(1, 7)
Sheet2.Cells(x, 6) = Sheet1.Cells(z, 7)
Sheet2.Cells(x, 7) = Sheet3.Cells(bj + 1, 6)
x = x + 1
End If
'历史
If Sheet1.Cells(z, 8) < 82 Then
Sheet2.Cells(x, 5) = Sheet1.Cells(1, 8)
Sheet2.Cells(x, 6) = Sheet1.Cells(z, 8)
Sheet2.Cells(x, 7) = Sheet3.Cells(bj + 1, 7)
x = x + 1
End If
'地理