求大神解释下下面的计时程序如何做到按秒刷新显示数据的??该程序还有一个窗体控件,下面是执行模块程序。
就我所知do events 语句除非设置pausetime=1,才可能做到间隔1秒执行语句的。
Public flag As Boolean
Public t1&, t2&
Sub test()
'If flag = False Then End
Dim n%
Do While Timer <= t2 And flag
t1 = t2 - Timer
If t1 < 60 Then
fm1.lab3.Caption = Str(t1) + "秒!"
Else
fm1.lab3.Caption = Str(t1 \ 60) + "分" + Str(t1 Mod 60) + "秒!"
End If
DoEvents
Loop
End Sub
vba计时程序 求大神解释
答案:2 悬赏:10 手机版
解决时间 2021-03-19 12:19
- 提问者网友:心牵心
- 2021-03-18 19:06
最佳答案
- 五星知识达人网友:封刀令
- 2021-03-18 19:39
'首先,你的代码绝对不止这么多,肯定还有给flag和t2进行赋值的代码
Public flag As Boolean '定义逻辑型全局变量flag
Public t1&, t2& '定义长数据类型全局变量t1、t2
Sub test()
'If flag = False Then End '此句被注释掉了,意思是如果flag开关是关的,则不退出test
Dim n% '定义整数型数据变量n,不过在此sub中没有用到
t2 = Timer + 100 '此句是我加的,目的是给t2赋个值,timer是当前时间,t2就是现在的100秒后的时间
Do While Timer <= t2 And flag 'timer是一个变量,同时又是一个函数,它会自动按秒步进,所以才在此过程中没有用到你所说的停止一秒再运行的情况。意思是当时间小于刚才定义的t2时循环此语句
t1 = t2 - Timer '因是倒计时,故计算差值
If t1 < 60 Then '此段if语句是判断t1是否在一分钟内,只是显示到fm1窗体的lab3文本框的内容有所区别而已。
fm1.lab3.Caption = Str(t1) + "秒!"
Else
fm1.lab3.Caption = Str(t1 \ 60) + "分" + Str(t1 Mod 60) + "秒!"
End If '这里注意一个除号用的是“\”而非“/”,目的是得到相除后的整数。比如:150\60=2 而150/60=2.5
DoEvents 'doevents的主要作用是交出控制权,不至于在程序运行过程中我们无法做其他操作!
Loop
End Sub
Public flag As Boolean '定义逻辑型全局变量flag
Public t1&, t2& '定义长数据类型全局变量t1、t2
Sub test()
'If flag = False Then End '此句被注释掉了,意思是如果flag开关是关的,则不退出test
Dim n% '定义整数型数据变量n,不过在此sub中没有用到
t2 = Timer + 100 '此句是我加的,目的是给t2赋个值,timer是当前时间,t2就是现在的100秒后的时间
Do While Timer <= t2 And flag 'timer是一个变量,同时又是一个函数,它会自动按秒步进,所以才在此过程中没有用到你所说的停止一秒再运行的情况。意思是当时间小于刚才定义的t2时循环此语句
t1 = t2 - Timer '因是倒计时,故计算差值
If t1 < 60 Then '此段if语句是判断t1是否在一分钟内,只是显示到fm1窗体的lab3文本框的内容有所区别而已。
fm1.lab3.Caption = Str(t1) + "秒!"
Else
fm1.lab3.Caption = Str(t1 \ 60) + "分" + Str(t1 Mod 60) + "秒!"
End If '这里注意一个除号用的是“\”而非“/”,目的是得到相除后的整数。比如:150\60=2 而150/60=2.5
DoEvents 'doevents的主要作用是交出控制权,不至于在程序运行过程中我们无法做其他操作!
Loop
End Sub
全部回答
- 1楼网友:千夜
- 2021-03-18 20:37
sub y02()
on error goto err: '有错跳至err子过程
dim varian as variant '定义varian 类型
dim pti(0 to 2) as double '定义pti为数组,内容限0-2行,或列
dim pth as string'定义为文本
dim texth as double'为双精度
dim po(0 to 2) as double'为双精度数组
dim texta as acadtext'定义为cad单行文本
dim tsc as double
dim blocobja as acadblockreference'定义为cad块
tsc = 1 '比例
pth = "c:\螺钉标准件\螺钉标准件\六角螺栓.dwg"
'此路径你自定义,必须有;没有会报错
if dir(pth) <> "" then'用dir判断有没有pth文件,没有=""
varian = thisdrawing.utility.getpoint(, vbcr & "放置点:")'在cad上选择一个坐标,或位置
po(0) = varian(0): po(1) = varian(1): po(2) = varian(2)'取出坐标的xyz值
set blocobja = thisdrawing.modelspace.insertblock(po, pth, tsc, tsc, tsc, 0)'在po位置插入块pth
blocobja.explode'块分解?
blocobja.delete'块删除
else
msgbox "<" + pth + " >文件不存在!!!", vbcritical, "读取文件错误" '文件报错
end if
err: '错误停止运行
end sub
大至是这个意思了
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯