永发信息网

vba计时程序 求大神解释

答案:2  悬赏:10  手机版
解决时间 2021-03-19 12:19
  • 提问者网友:心牵心
  • 2021-03-18 19:06
求大神解释下下面的计时程序如何做到按秒刷新显示数据的??该程序还有一个窗体控件,下面是执行模块程序。
就我所知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
最佳答案
  • 五星知识达人网友:封刀令
  • 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
全部回答
  • 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 大至是这个意思了
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯