|
楼主 |
发表于 2018-10-6 22:49
|
显示全部楼层
增加Ontime方法的到预定时间取消累计计时及自动交卷代码后,并不能取消累计计时,也不能自动交卷,单击提前交卷按钮后,则会取消累计计时并提前交卷。不知代码错在何处,特向朋友们求助,求助,求助,代码如下:一、模块1全部
Public sh As Worksheet, mytime As Integer, starttime As Date, endtime As Date, ti As Date
Sub 生成试卷()
' On Error GoTo cancel
mytime = Range("D14").Value * 60
Application.ScreenUpdating = False
Call 试卷表新建
Call 试卷表设置
Call 按钮添加
Call 多选题导入
Call 单选题导入
Call 判断题导入
Call 试卷表设置2
Call 进入试卷界面
For Each sh In Worksheets
If sh.Name <> "试卷" Then sh.Visible = xlSheetHidden '隐藏非试卷表
Next
Range("D4").Value = 0
Application.ScreenUpdating = True
starttime = Now()
endtime = TimeValue(starttime + mytime)
Call ot
Call ot2
'cancel:
End Sub
二、模块2中部份
Sub ot()
ti = Now() + TimeValue("00:00:01") '必须设置该变量,才能在某处取消该计时方法
Application.OnTime ti, "显示已用时间"
End Sub
Sub 显示已用时间()
Range("D4").Value = Now() - starttime '考试已用的时间值写入未锁定的单元格
Call ot
End Sub
Sub ot2()
Application.OnTime endtime, "到时自动交卷"
End Sub
Sub 到时自动交卷()
On Error Resume Next
Application.OnTime ti, "显示已用时间", , False
Range("D4").Value = mytime
MsgBox "时间到,考试结束!", , "哎呀 !"
Call 交卷
End Sub
Sub 提前交卷()
On Error Resume Next
If MsgBox("你确定要提前交卷吗?", vbOKCancel + vbQuestion, "微软的提醒!") = vbOK Then
MsgBox "你确定要提前交卷吗?", vbOKCancel + vbQuestion, "重要的事情说二遍!"
Application.OnTime ti, "显示已用时间", , False '清除计时设置,空参数必须占位
Call 交卷
End If
End Sub
以上修改好后该程序可告一段落了。特别问下如何给别人送花?
|
|