[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

【练习-040】根据原始数据表用VBS生成统计表

&&这是本人所出的第一个vbs题,有两个目的:一是想调动大家学习vbs的积极性;二是想通过研读高手的代码学习vbs技术。
   题目如下:
   有原始数据表test..xls表中记录了刘起涯、周月、向文章、区同雨、顾思明、李东、张浩七个人共1000笔关于宽带、电话、小
灵通、手机四种产品的销售量流水帐(见附件一)。现在要求使用vbs生成统计表temp.xls对各人的各种产品的总销售量进行统
计,生成的统计表如下(字体和颜色不要求设置):
                                                                                                                                                                                                                                                                                             
     本题满分20分,视情形加分


[ 本帖最后由 Batcher 于 2009-5-1 20:59 编辑 ]
附件: 您需要登录才可以下载或查看附件。没有帐号?注册
***共同提高***

本人的参考答案及代码注释如下:

本人的test..xls完全路径为d:\test
  1. dim counter,counter1,counter2,countera,counterb,numbera,numberb,numberc '声明变量
  2. '生成数组
  3. numbera=array("姓名","宽带","电话","小灵通","手机")
  4. numberb=array("刘起涯","周月","向文章","区同雨","顾思明","李东","张浩","合计")
  5. numberc=array("b","c","d","e")
  6. set objexcel=nothing '置空objexcel对象
  7. '设置object对象
  8. set objexcel=createobject("excel.application")
  9. set objworks=objexcel.workbooks
  10. set wshshell=createobject("wscript.shell")
  11. set delfile=createobject("scripting.filesystemobject")
  12. objexcel.visible=true '设置工作表对象可见
  13. objworks.open("d:\test\test.xls") '打开test.xls
  14. objworks.add '新建工作表
  15. objexcel.worksheets(1).activate '将工作表的第一页设为活动页
  16. '向工作表第一行中写入项目
  17. for counter1=0 to 4
  18.     counter=counter1+1
  19.     objexcel.cells(1,counter).value=numbera(counter1)
  20. next
  21. '向工作表中第一列中写入姓名和合计字符
  22. for counter2=0 to 7
  23.     counter=counter2+2
  24.     objexcel.cells(counter,1).value=numberb(counter2)
  25. next
  26. '逐行从第二列开始向工作表中写入数组公式
  27. for counter1=0 to 6
  28.     countera=counter1+2
  29.     for counter2=0 to 3
  30.         counterb=counter2+2
  31.         objexcel.cells(countera,counterb).value="=SUM(([test.xls]Sheet1!$A$2:$A$1001=A"&countera&")*([test.xls]Sheet1!$B$2:$B$1001="&numberc(counter2)&"1)*[test.xls]Sheet1!$C$2:$C$1001)"
  32.         objexcel.cells(countera,counterb).activate
  33.         wscript.sleep 10
  34.         wshshell.sendkeys "{f2}"
  35.         wscript.sleep 10
  36.         wshshell.sendkeys "^+~" '发送组合键ctrl+shift+enter生成数组公式
  37.     next
  38. next
  39. '写入求和公式
  40. for counter1=0 to 3
  41.     countera=counter1+2
  42.     objexcel.cells(9,countera).value="=sum("&numberc(counter1)&"2:"&numberc(counter1)&"8)"
  43. next
  44. '设置工作表的字体颜色
  45. objExcel.ActiveSheet.Rows.Font.Name="楷体_GB2312"
  46. objExcel.ActiveSheet.Rows.Font.size=12
  47. objExcel.ActiveSheet.Rows.Font.Color=vbblue
  48. objExcel.ActiveSheet.Rows(1).Font.Color=vbred
  49. objExcel.ActiveSheet.Rows(1).Font.Bold=true
  50. objexcel.activeworkbook.saveas("d:\test\temp.xls") '另存工作表为d:\test\temp.xls
  51. wscript.sleep 3000
  52. objexcel.quit
  53. set objexcel=nothing
  54. 'delfile.deletefile "d:\test\temp.xls" '如要删除新建的temp.xls请将d前面的'去掉
复制代码



[ 本帖最后由 batman 于 2009-4-2 23:33 编辑 ]
***共同提高***

TOP

把图片改成PNG格式吧,BMP太浪费空间了。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

看来是没人想做vbs的题了,唉!
***共同提高***

TOP

。。。直接VBS套SQL。。。。

SUM下就出来了。。。

TOP

访问excel不是用vba吗,vbs访问excel我得去查查

TOP

返回列表