一步一步教你excel中用VBA自动从一个表按条件把数据填充到另一张表(优选.)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

最新文件---------------- 仅供参考--------------------已改成-----------word文本 --------------------- 方便更改
一步一步教你用VBA自动从一个表按条件把数据填充到另一张表
高考上线与未上线统计,下面是某市2013年高考总分与单科分数线
2013年全市文科分数线
这里关键统计某人总分上了某一分数线,而单科没上分数线的人数。

进一步统计上该科老师头上该科是否努力,是不是拖了后腿。

原始成绩放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
沈鑫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
班姓名总分类别未上线
科目
未上线分

科任教师
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 向老师
政治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编辑器。

三、点插入菜单---模块;双击新建的模块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)
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
'地理
If Sheet1.Cells(z, 9) < 74 Then
Sheet2.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 + 1
End If
End If
End If
z = z + 1
Next v
End Sub
还有不懂的可以留言。

最新文件---------------- 仅供参考--------------------已改成-----------word文本 --------------------- 方便更改
赠人玫瑰,手留余香。

相关文档
最新文档