1、一步一步教你用 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单科分数线以语文为例:全市一本
2、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
3、79 0 600沈鑫 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
4、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 5662.科任教师表 sheet3班 班主任 语文 数学 外语 物理 化学 生物1 肖友老师
5、 刘 老师 肖友老师 肖雪老师 张长老师 吴明老师 王耀老师2 陈小老师 邓小老师 向 老师 陈 老师 何继老师 邓君老师 陈小老师3 张小老师 姚 老师 王春老师 陈 老师 徐文老师 王 老师 张小老师4 鲜松老师 李 老师 鲜松老师 高乐老师 冯朝老师 李 老师 黄家老师5 何万老师 敬文老师 何万老师 王文老师 张长老师 陈 老师 黄家老师6 唐建老师 唐建老师 龙泽老师 高乐老师 魏定老师 唐双老师 林玉老师7 刘 老师 姚仁老师 刘 老师 冯 老师 杜 老师 吴明老师 王耀老师8 陈 老师 刘 老师 罗巧老师 赵文老师 冯朝老师 陈 老师 张小老师9 邓君老师 邓小老师 赵元老师 贾
6、 老师 何继老师 邓君老师 林玉老师10 敬文老师 敬文老师 鲜松老师 王文老师 徐文老师 吴明老师 张小老师3.统计结果 sheet2:班 姓名 总分 类别 未上线科目 未上线分数 科任教师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
7、邓君老师地理 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 向 老师政治 69 何继老师历史 77 邓君老师地理 70.5 陈小老师02 刘奕伶 587 一本 语文 110 邓小老师数学 125 向 老师政治 69.5 何继老师地理 68 陈小老师02 赵原巧 586 一本
8、 语文 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
9、Basic 编辑器,打开 VBA 编辑器。三、 点插入菜单-模块;双击新建的模块 1;再点插入菜单下的过程,输入过程名,然后进入代码编辑,把下面的代码复制入代码框即可Public Sub 测试()Dim x, y, z, v, bj, bx As Longx = 2z = 2For v = 2 To 2270If Sheet1.Cells(z, 11) = 567 ThenSheet2.Cells(x, 2) = Sheet1.Cells(z, 1)Sheet2.Cells(x, 1) = Sheet1.Cells(z, 2)Sheet2.Cells(x, 3) = Sheet1.Cells(
10、z, 11)Sheet2.Cells(x, 4) = “一本“bj = Sheet1.Cells(z, 2)语文If Sheet1.Cells(z, 3) 112 ThenSheet2.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 + 1End If数学If Sheet1.Cells(z, 4) 128 ThenSheet2.Cells(x, 5) = Sheet1.Cells(1, 4)Sheet2
11、.Cells(x, 6) = Sheet1.Cells(z, 4)Sheet2.Cells(x, 7) = Sheet3.Cells(bj + 1, 4)x = x + 1End If英语If Sheet1.Cells(z, 5) 128 ThenSheet2.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 + 1End If政治If Sheet1.Cells(z, 7) 71 ThenSheet2.C
12、ells(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 + 1End If历史If Sheet1.Cells(z, 8) 82 ThenSheet2.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 + 1End If地理If Sheet1.Cells(z, 9) 74 ThenSheet2.Cells(x, 5) = Sheet1.Cells(1, 9)Sheet2.Cells(x, 6) = Sheet1.Cells(z, 9)Sheet2.Cells(x, 7) = Sheet3.Cells(bj + 1, 8)x = x + 1End IfEnd IfEnd Ifz = z + 1Next vEnd Sub还有不懂的可以留言。