龙空技术网

VBA循环语句使用方法介绍,早学早知道

江觅 336

前言:

现时看官们对“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