前言:
现时看官们对“vb timegettime”都比较看重,你们都想要知道一些“vb timegettime”的相关知识。那么小编也在网上搜集了一些对于“vb timegettime””的相关文章,希望姐妹们能喜欢,各位老铁们一起来了解一下吧!No.1
循环语句是程序设计必须掌握的内容,如果对循环不熟悉,那么就大大地缩减了程序效率。
循环语句分几种不种类型,本节介绍一下Do...Loop循环语句的使用方法。
No.2
Do...Loop循环语句语法如下图:
从上图可看到,Do...Loop语句有两种使用方法,一种是把循环判断条件放在前面,另一种是在循环语句后面。
也可以理解为先判断后循环,或者先循环后判断。
两者不同点在于,先判断条件只有条件成立才进行循环,后判断即使条件不成立也要先进行一次循环语句执行。
实际当中,根据不同的需求选择循环方式。
No.3
示例
本示例是进行数据增加的一个过程,当条件成立即跳出循环,显示出循环过程所使用的时间,时间单位为毫秒。
可以看到表中有一个起始值,一个结束值,程序以1为步长进行相加,单元格内值依次变化,直到结束值停止,跳出循环。
No.4
代码
Private Declare Function timeGetTime Lib "winmm" () As Long '取开机毫秒时间Private Sub CommandButton1_Click()Range("G1").Value = "当前已经开机:" & _VBA.Format(timeGetTime / 3600000, "#.00") & " 小时"Dim s As Worksheet, cell As Range, xcell As RangeDim i As Long, t As LongSet s = ActiveSheetSet cell = s.Range("A4:A6")For Each xcell In cell i = 0 t = timeGetTime Do i = i + 1 xcell.Offset(0, 4).Value = timeGetTime - t DoEvents Loop Until i = xcell.Offset(0, 3)Next xcellEnd Sub
上面代码实现本例效果。
其中有一个关键,如何获取当前时间毫秒。
VBA中并没有获取毫秒的功能,可以利用Windows API的winmm.dll中的timeGetTime 获得毫秒数,这个值是从开机到现在的毫秒数。
从循环开始保存一个毫秒数,到循环结束的毫秒数相差就是循环执行所使用的时间。
如下语句放到"通用声明"里
Private Declare Function timeGetTime Lib "winmm" () As Long '取开机毫秒时间
循环语句应用基本上就这几点关键,重点是要对了循环条件进行设置,如果条件设置为永远False那么就变成一个死循环,所以学习循环语句之前要清楚地了解条件语句的值,不能变成死循环。
当然在循环语句中增加DoEvents语句,可以有效避免死循环的发生,此语句可转交控制权。
欢迎关注、收藏
---END---
标签: #vb timegettime