vbs 的成绩录入助手

    这段时间少更新 blog,太忙了。放个原创的小东西凑数,呵呵。

   原理:读取成绩登记表的excel,然后通过模拟键盘操作来录入成绩。

On Error Resume Next
LANGUAGE="VBScript"
Const vbsName = "成绩录入助手"
Const vbsVer = " v3.2"
Const vbsAuthor = "Comet"
Const vbsAuthorEmail = " ( iamcomet AT. 163.com )"
Const vbsCreatedTime = " 2008-06-14 "
Const vbsUpdateTime = " 2012-07-06 "
dim s1(200),s2(200),s3(200),s4(200),s5(200),s6(200)
dim vbsAnnounce,WshShell,xlsName,vbsFolder

vbsAnnounce = Msgbox ("请严格按照提示进行操作,以免造成出错!" & vbCrLf & vbCrLf & "自愿使用,作者( Comet )不承担任何后果!" & vbCrLf & vbCrLf & "确认吗?", vbYesNo, vbsName & vbsVer)
If vbsAnnounce = vbNo Then
WScript.Quit
End If
Set WshShell = WScript.CreateObject("WScript.Shell")
xlsName = InputBox("1.按“成绩表样例”的格式输入学生平时成绩等成绩。" & vbCrLf & vbCrLf & "2.打开IE,登录教务管理系统。请勿最大化或最小化IE窗口,否则不能获取焦点。" & vbCrLf& vbCrLf & "3.进入成绩录入界面,把光标放到第一个学生的平时成绩中。" & vbCrLf& vbCrLf & "4.输入过程中请勿进行其他操作,否则会造成录入出错。" & vbCrLf& vbCrLf & "5.请输入当前文件夹中成绩Excel表的名称(不包括扩展名,默认为“成绩表样例”):",vbsName & vbsVer,"成绩表样例")
If Len(xlsName) = 0 Then
Msgbox "成绩Excel表的名称不能为空,程序退出。" & vbCrLf & vbCrLf & "作者: " & vbsAuthor & vbsAuthorEmail, ,vbsName & vbsVer
WScript.Quit
End If
vbsFolder = WshShell.CurrentDirectory
WshShell.AppActivate "Explorer"
WScript.Sleep 3000

Set oExcel = CreateObject("Excel.Application")
Set xlBook = oExcel.Workbooks.Open(vbsFolder&"\"&xlsName&".xls")
If Err.Number <> 0 Then
Msgbox Err.Description & "程序退出。" & vbCrLf & vbCrLf & "作者: " & vbsAuthor & vbsAuthorEmail, ,vbsName & vbsVer
WScript.Quit
End If
Set xlSheet = xlBook.WorkSheets(1)
For i = 6 to 200
s1(i) = trim(xlSheet.Cells(i,3).Value) '第i行第3列,即姓名列
If len(s1(i)) = 0 Then
Exit For
End If
s2(i) = trim(xlSheet.Cells(i,4).Value) '平时成绩
s3(i) = trim(xlSheet.Cells(i,5).Value) '期中成绩
s4(i) = trim(xlSheet.Cells(i,6).Value) '期末成绩
s5(i) = trim(xlSheet.Cells(i,7).Value) '实验成绩
' s6(i) = trim(xlSheet.Cells(i,8).Value) '总评成绩
Next
For j = 6 to i - 1
With WshShell
.SendKeys s2(j)
.SendKeys "{RIGHT}"
WScript.Sleep 100
.SendKeys s3(j)
.SendKeys "{RIGHT}"
WScript.Sleep 100
.SendKeys s4(j)
.SendKeys "{RIGHT}"
WScript.Sleep 100
.SendKeys s5(j)
.SendKeys "{TAB}"
WScript.Sleep 100
.SendKeys "{LEFT 3}"
WScript.Sleep 100
End With
Next
WshShell.SendKeys "{RIGHT 3}" '最后一行会多按3次左,这里抵消掉

xlBook.Close
Set xlBook = Nothing
oExcel.Quit
Set oExcel = Nothing
WScript.Sleep 5000
Msgbox "成绩输入完毕,程序退出。谢谢使用!" & vbCrLf & vbCrLf & "作者: " & vbsAuthor & vbsAuthorEmail, ,vbsName & vbsVer
WScript.Quit

 

将以上代码保存为 成绩录入助手.vbs ,如果需要还可以使用 ScriptCryptor 把 vbs 转成 exe。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据