Board logo

标题: 用vbs来操作Excel [打印本页]

作者: youxi01    时间: 2008-1-17 21:49     标题: 用vbs来操作Excel

最近,班主任要 做学生的 学分认定表格,一个学生一份,每个学生又学了 N(n>=15) 课,每门课还要打n个分....

嫌手工输入太麻烦,做此小程序,用vbs来操作excel对象,实现自动化输入...
仓促所作,望批评指正...
  1. 'code by youxi01@bbs.bathome.net
  2. '2008-1-17于***第一中学
  3. '/*///////////////初始设定///////////////////////
  4. Dim MyStr,fso,f,j_num
  5. str0="班级:高二 18 班       "
  6. str1="姓名:"
  7. str2="        学号:200610"
  8. str3="        时间:2007 —— 2008    学年"
  9. msg1="学生档案文件name.txt不存在!"&vbcrlf&vbcrlf&"请按照 姓名(Tab)学号 格式,将信息保存到当前目录"
  10. msg2="学分认定模板文件Module.xls不存在!"&vbcrlf&vbcrlf&"请将模板文件拷贝到当前目录,并更名。"
  11. '/*/////////////以下用#隔开的数字为要填学分的位置/////
  12. j_num="6#7#10#11#14#15#18#20#22#24#26#28#29#30#40#42"
  13. num=split(j_num,"#")     '按 # 分割
  14. '/*//////////////创建excel对象///////////////////
  15. Set objExcel=CreateObject("Excel.Application")
  16. '/*==========打开文件对象==========================
  17. Const ForReading = 1, ForWriting = 2
  18. Set fso = CreateObject("Scripting.FileSystemObject")
  19. pfolder= fso.Getfile(wscript.scriptfullname).parentfolder
  20. if right(pfolder,1)="\" then pfolder=left(pfolder,len(pfolder)-1)
  21. '/*==========检测配置文件是否存在==================
  22. if not fso.FileExists("name.txt") then msgbox msg1,48,"出错了!":Wscript.quit
  23. if not fso.FileExists("module.xls") then msgbox msg2,48,"出错了!":Wscript.quit
  24. if not fso.FolderExists("★学生学分认定★") then fso.CreateFolder("★学生学分认定★")
  25. '/*//////////////学生姓名和学号保存文件//////////
  26. Set f = fso.OpenTextFile("name.txt", ForReading)
  27. Do While f.AtEndOfLine <> True
  28.     str=f.readline                    '读文本文件的一行
  29.     MyStr=split(str," ",-1)         '按 “ ” 分割字符
  30.     if Clng(MyStr(1))<10 then         '如果学号数小于10#则自动在前面添加0;
  31.        Mystr(1)="0"&Mystr(1)
  32.     end if
  33.     str=str0&str1&MyStr(0)&str2&MyStr(1)&str3
  34.     if not fso.FileExists(pfolder&"\★学生学分认定★\"&Mystr(0)&".xls") then
  35.          En=inputbox("请设置 "&Mystr(0)&" 的成绩","学分认定")
  36.          if En="" then objExcel.quit:wscript.quit         '如果选择了取消,就退出程序;
  37.          '/*/////////////设置表格操作对象////////////////////
  38.         set objWorkbook=objExcel.Workbooks.Open(pfolder&"\module.xls")  '###模板excel###
  39.         Set objWorksheet = objWorkbook.Worksheets(2)   
  40.         objWorksheet.Cells(2,1).Value=str                  '设置学生姓名,学号;
  41.         for i=0 to 15
  42.              Randomize                                     '初始化随机数生成器
  43.              Res=Int((5 * Rnd)) + En                       '随机数字;
  44.              objWorksheet.Cells(10,clng(num(i))).value=Res '将随机内容填入表格;
  45.         next
  46.         '##########保存地点##############
  47.         objWorkbook.SaveAs pfolder&"\★学生学分认定★\"&Mystr(0)&".xls"  '按学生名字保存xls文件;
  48.     else
  49.         msgbox Mystr(0) &" 的成绩已经存在!"
  50.     end if
  51.     objExcel.quit                                          '退出excel对象;
  52. loop
  53. f.Close
  54. objExcel.quit
复制代码

作者: gittywang    时间: 2009-7-7 10:35

name.txt和module.xls要怎么建呢?
我自己建的,vbs执行的时候会出错




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2