
VBS脚本编程问题
某文件夹下有一个Excel工作薄,里面有三个表,每个表里的B列有一个文本数列像"01051406251728"这样的.要对这几个表进行统计,统计方法如下:出现01的所有单...
某文件夹下有一个Excel 工作薄,里面有三个表,每个表里的B列有一个文本数列像"01 05 14 06 25 17 28"这样的.要对这几个表进行统计,统计方法如下:
出现01 的所有单元格,将对应的整行数据复制到新工作薄的sheet1表中第一行到N行
出现02的复制到sheet2中..
出现XX的复制到sheetx中.. 展开
出现01 的所有单元格,将对应的整行数据复制到新工作薄的sheet1表中第一行到N行
出现02的复制到sheet2中..
出现XX的复制到sheetx中.. 展开
2个回答
展开全部
楼主,我专门为你写了一个
我就是用这个例子写的(把这个拷贝到excel中去就行:
姓名 身份证号 报考科目 成绩
安庆东 622821197208100815 Excel 2003 35
安庆东 622821197208100815 Word 2003 42.5
安庆东 622821197208100815 Windows XP 55
安廷文 622827197402072318 Excel 2003 25
安廷文 622827197402072318 Word 2003 42.5
安廷文 622827197402072318 Windows 98 52.5
安霞 622823197112200224 Excel 2003 47.5
安霞 622823197112200224 Word 2003 62.5
安霞 622823197112200224 Windows XP 67.5
安妍霞 622821197410110048 PowerPoint 97 90
安妍霞 622821197410110048 Word 97 97.5
安占海 622823197111160216 Word 2003 52.5
安占海 622823197111160216 Windows XP 72.5
安占海 622823197111160216 PowerPoint 2003 82.5
白长宁 622822196409180016 PowerPoint 2003 42.5
白长宁 622822196409180016 Excel 97 62.5
白长宁 622822196409180016 Word 97 67.5
白长宁 622822196409180016 Windows 98 80
白恒宪 622821197608260017 PowerPoint 2003 35
白恒宪 622821197608260017 Excel 2003 37.5
白恒宪 622821197608260017 Word 2003 50
白素镭 620105197707160062 Excel 2003 45
白素镭 620105197707160062 Word 2003 45
白素镭 620105197707160062 计算机网络应用基础 67.5
白素镭 620105197707160062 Windows XP 87.5
白晓波 622801196601080021 Excel 97 52.5
白晓波 622801196601080021 Word 97 57.5
白晓波 622801196601080021 PowerPoint 97 67.5
白晓波 622801196601080021 Windows 98 72.5
白晓东 622801197410200056 金山表格2005 7.5
白晓东 622801197410200056 Word 2003 17.5
白晓东 622801197410200056 Windows XP 40
包戈华 622102196911085467 Word 97 82.5
包戈华 622102196911085467 PowerPoint 97 100
包戈华 622102196911085467 Windows 98 100
包戈华 622102196911085467 计算机网络应用基础 100
边晶 622801197603070227 Windows 98 62.5
边晶 622801197603070227 PowerPoint 97 65
边晶 622801197603070227 Word 97 67.5
边晓惠 622801197402280025 PowerPoint 97 87.5
边晓惠 622801197402280025 Word 97 87.5
边晓惠 622801197402280025 Windows 98 90
曹芳 622825197503280025 Word 97 50
曹芳 622825197503280025 PowerPoint 97 52.5
曹刚 62010219770824535x Excel 97 72.5
曹剑华 622824196801121478 Windows 98 82.5
曹剑华 622824196801121478 Excel 97 87.5
曹剑华 622824196801121478 Word 97 87.5
曹剑华 622824196801121478 PowerPoint 97 95
曹金宁 622826197106151963 Word 97 50
曹金宁 622826197106151963 Windows 98 52.5
曹金宁 622826197106151963 PowerPoint 97 72.5
曹景宁 622824196606120031 Excel 2003 27.5
曹景宁 622824196606120031 Internet 应用 30
曹景宁 622824196606120031 Word 2003 30
曹景宁 622824196606120031 用友财务(U8)软件 50
曹蓉 622801197305100221 Word 97 75
曹蓉 622801197305100221 PowerPoint 97 77.5
曹蓉 622801197305100221 Windows XP 85
曹新斌 622801640116001 Excel 97 95
曹银生 622826196407140438 PowerPoint 2003 47.5
曹银生 622826196407140438 Excel 97 75
曹银生 622826196407140438 Word 97 77.5
曹银生 622826196407140438 Windows 98 95
柴有 62282119720803001X Word 97 82.5
柴有 62282119720803001X Windows 98 87.5
柴有 62282119720803001X PowerPoint 97 92.5
常淑玲 622824197911180182 Excel 97 42.5
常淑玲 622824197911180182 Windows 98 60
常淑玲 622824197911180182 Word 97 70
常小锋 622822198100240319 Excel 2003 30
常小锋 622822198100240319 Word 2003 37.5
常小锋 622822198100240319 Windows XP 85
常岩 622821196411010044 Word 97 25
常岩 622821196411010044 Windows 98 42.5
常岩 622821196411010044 Excel 97 62.5
常瑛 622801197012070049 Excel 97 37.5
常瑛 622801197012070049 Word 97 37.5
常瑛 622801197012070049 Windows 98 50
下面这个过程就是了,把上面的示例数据全部复制到sheet1中
说明:这个sub可以把sheet1里面的所有学"windows xp"的同学弄到sheet2中,把所有学习"excel 2003"的同学弄到sheet3中
Sub Macro1()
Sheet1.Activate '首先把sheet1激活
Dim Counter1, Counter2, Counter3 As Long '定义三个计数器
Counter1 = 0 '把这三个计数器归零
Counter2 = 0
Counter3 = 0
For i = 1 To ActiveSheet.UsedRange.Rows.Count '从第一行到最后一行
If Trim(Cells(i, 3)) = "Excel 2003" Then '如果第三列的值为"Excel 2003"
Sheet1.Range(Cells(i, 1), Cells(i, 4)).Select '选择一行
Selection.Copy '复制
Sheet2.Activate
Counter1 = Counter1 + 1
Sheet2.Cells(Counter1, 1).Select
ActiveSheet.Paste '粘贴到sheet2
Sheet1.Activate
ElseIf Trim(Cells(i, 3)) = "Windows XP" Then '这个if和上面的if一样,不过这个是用来找"Windows XP"的
Sheet1.Range(Cells(i, 1), Cells(i, 4)).Select
Selection.Copy
Sheet3.Activate
Counter2 = Counter2 + 1
Sheet3.Cells(Counter2, 1).Select
ActiveSheet.Paste
Sheet1.Activate
ElseIf Trim(Cells(i, 3)) = "Windows 98" Then
'这个if我就不写了,楼主你自己按实际情况编写吧
End If
Next
End Sub
楼主,如果还有什么不明白,可以把你的那个原始的excel文件发给我,我可以帮你处理
我的邮箱是hbclikai@163.com
我就是用这个例子写的(把这个拷贝到excel中去就行:
姓名 身份证号 报考科目 成绩
安庆东 622821197208100815 Excel 2003 35
安庆东 622821197208100815 Word 2003 42.5
安庆东 622821197208100815 Windows XP 55
安廷文 622827197402072318 Excel 2003 25
安廷文 622827197402072318 Word 2003 42.5
安廷文 622827197402072318 Windows 98 52.5
安霞 622823197112200224 Excel 2003 47.5
安霞 622823197112200224 Word 2003 62.5
安霞 622823197112200224 Windows XP 67.5
安妍霞 622821197410110048 PowerPoint 97 90
安妍霞 622821197410110048 Word 97 97.5
安占海 622823197111160216 Word 2003 52.5
安占海 622823197111160216 Windows XP 72.5
安占海 622823197111160216 PowerPoint 2003 82.5
白长宁 622822196409180016 PowerPoint 2003 42.5
白长宁 622822196409180016 Excel 97 62.5
白长宁 622822196409180016 Word 97 67.5
白长宁 622822196409180016 Windows 98 80
白恒宪 622821197608260017 PowerPoint 2003 35
白恒宪 622821197608260017 Excel 2003 37.5
白恒宪 622821197608260017 Word 2003 50
白素镭 620105197707160062 Excel 2003 45
白素镭 620105197707160062 Word 2003 45
白素镭 620105197707160062 计算机网络应用基础 67.5
白素镭 620105197707160062 Windows XP 87.5
白晓波 622801196601080021 Excel 97 52.5
白晓波 622801196601080021 Word 97 57.5
白晓波 622801196601080021 PowerPoint 97 67.5
白晓波 622801196601080021 Windows 98 72.5
白晓东 622801197410200056 金山表格2005 7.5
白晓东 622801197410200056 Word 2003 17.5
白晓东 622801197410200056 Windows XP 40
包戈华 622102196911085467 Word 97 82.5
包戈华 622102196911085467 PowerPoint 97 100
包戈华 622102196911085467 Windows 98 100
包戈华 622102196911085467 计算机网络应用基础 100
边晶 622801197603070227 Windows 98 62.5
边晶 622801197603070227 PowerPoint 97 65
边晶 622801197603070227 Word 97 67.5
边晓惠 622801197402280025 PowerPoint 97 87.5
边晓惠 622801197402280025 Word 97 87.5
边晓惠 622801197402280025 Windows 98 90
曹芳 622825197503280025 Word 97 50
曹芳 622825197503280025 PowerPoint 97 52.5
曹刚 62010219770824535x Excel 97 72.5
曹剑华 622824196801121478 Windows 98 82.5
曹剑华 622824196801121478 Excel 97 87.5
曹剑华 622824196801121478 Word 97 87.5
曹剑华 622824196801121478 PowerPoint 97 95
曹金宁 622826197106151963 Word 97 50
曹金宁 622826197106151963 Windows 98 52.5
曹金宁 622826197106151963 PowerPoint 97 72.5
曹景宁 622824196606120031 Excel 2003 27.5
曹景宁 622824196606120031 Internet 应用 30
曹景宁 622824196606120031 Word 2003 30
曹景宁 622824196606120031 用友财务(U8)软件 50
曹蓉 622801197305100221 Word 97 75
曹蓉 622801197305100221 PowerPoint 97 77.5
曹蓉 622801197305100221 Windows XP 85
曹新斌 622801640116001 Excel 97 95
曹银生 622826196407140438 PowerPoint 2003 47.5
曹银生 622826196407140438 Excel 97 75
曹银生 622826196407140438 Word 97 77.5
曹银生 622826196407140438 Windows 98 95
柴有 62282119720803001X Word 97 82.5
柴有 62282119720803001X Windows 98 87.5
柴有 62282119720803001X PowerPoint 97 92.5
常淑玲 622824197911180182 Excel 97 42.5
常淑玲 622824197911180182 Windows 98 60
常淑玲 622824197911180182 Word 97 70
常小锋 622822198100240319 Excel 2003 30
常小锋 622822198100240319 Word 2003 37.5
常小锋 622822198100240319 Windows XP 85
常岩 622821196411010044 Word 97 25
常岩 622821196411010044 Windows 98 42.5
常岩 622821196411010044 Excel 97 62.5
常瑛 622801197012070049 Excel 97 37.5
常瑛 622801197012070049 Word 97 37.5
常瑛 622801197012070049 Windows 98 50
下面这个过程就是了,把上面的示例数据全部复制到sheet1中
说明:这个sub可以把sheet1里面的所有学"windows xp"的同学弄到sheet2中,把所有学习"excel 2003"的同学弄到sheet3中
Sub Macro1()
Sheet1.Activate '首先把sheet1激活
Dim Counter1, Counter2, Counter3 As Long '定义三个计数器
Counter1 = 0 '把这三个计数器归零
Counter2 = 0
Counter3 = 0
For i = 1 To ActiveSheet.UsedRange.Rows.Count '从第一行到最后一行
If Trim(Cells(i, 3)) = "Excel 2003" Then '如果第三列的值为"Excel 2003"
Sheet1.Range(Cells(i, 1), Cells(i, 4)).Select '选择一行
Selection.Copy '复制
Sheet2.Activate
Counter1 = Counter1 + 1
Sheet2.Cells(Counter1, 1).Select
ActiveSheet.Paste '粘贴到sheet2
Sheet1.Activate
ElseIf Trim(Cells(i, 3)) = "Windows XP" Then '这个if和上面的if一样,不过这个是用来找"Windows XP"的
Sheet1.Range(Cells(i, 1), Cells(i, 4)).Select
Selection.Copy
Sheet3.Activate
Counter2 = Counter2 + 1
Sheet3.Cells(Counter2, 1).Select
ActiveSheet.Paste
Sheet1.Activate
ElseIf Trim(Cells(i, 3)) = "Windows 98" Then
'这个if我就不写了,楼主你自己按实际情况编写吧
End If
Next
End Sub
楼主,如果还有什么不明白,可以把你的那个原始的excel文件发给我,我可以帮你处理
我的邮箱是hbclikai@163.com
2010-01-22
展开全部
EXCEL 本身就有筛选和分类汇总的功能,直接用吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询