十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
do ... loop
创新互联建站成立于2013年,我们提供高端重庆网站建设、网站制作、成都网站设计、网站定制、全网整合营销推广、微信平台小程序开发、微信公众号开发、营销推广服务,提供专业营销思路、内容策划、视觉设计、程序开发来完成项目落地,为酒楼设计企业提供源源不断的流量和订单咨询。
do while ... loop
do until ... loop
do ... loop while
do ... loop until
各有不同作用,有的先处理再判断,有的先判断再处理
Public Sub Delay(Second As Bouble)
Dim tempTime As DateTime = DateTime.Now
While (tempTime.AddSeconds(second).CompareTo(DateTime.Now) 0)
Application.DoEvents()
End While
End Sub
放在模块里,使用时 Delay(1) 即可。
你确信只循环一次吗?我看不像,在最后添加上一句msgbox jishu1,多半显示3。
是在第二块代码中有问题,你应该把chaxun4 = xlsheet.Range("l1").Value + 2分别放到两个条件句中初始chaxun4变量。
因为上一个Do Until atmbianhaop = xlsheet.Range("B" chaxun4).Value 循环退出后,下一个循环一开始就符合退出条件了,所以循环没有进行了。
System.Windows.Forms.Application.DoEvents()
Or
My.Application.DoEvents()
处理目前在讯息伫列中的所有 Windows 讯息。
' Usage My.Application.DoEvents()
' Declaration Public Sub DoEvents()
备注
My.Application.DoEvents 方法可以让您的应用程式在执行程式码的同时,也能够处理可能所引发的其他事件。My.Application.DoEvents 方法与 DoEvents 方法具有相同的行为。
当您执行 Windows Form 应用程式时会建立新表单,表示会等待处理事件。每一次表单处理事件时 (例如,按钮点选),便会处理与该事件相关联的所有程式码。所有其他事件都会在伫列中等待。当您的程式码在处理事件时,应用程式不会做出回应。例如,如果将其他视窗拖曳至顶端,不会重新绘制视窗。
如果您在程式码中呼叫 My.Application.DoEvents,应用程式就可以处理其他事件。例如,如果程式码将资料加入至回圈 (Loop) 中的 ListBox,且会在回圈的每个步骤之后呼叫 My.Application.DoEvents,则将其他视窗拖曳至该视窗上方时,便会重新绘制表单。如果从程式码中移除 My.Application.DoEvents,则必须等到按钮的点选事件处理常式完成执行之后,才会重新绘制表单。
您通常会在回圈中使用此方法处理讯息。
注意事项:
My.Application.DoEvents 方法处理事件的方式和表单的方式不太一样。使用多执行绪处理,让表单直接处理事件。如需详细资讯,请参阅 Visual Basic 中的多执行绪。
警告:
如果处理使用者介面 (UI) 事件的方法呼叫 My.Application.DoEvents 方法,则在它完成之前可能会重新输入方法。发生这个状况的原因是 My.Application.DoEvents 方法会处理 Windows 讯息,而 Windows 讯息会引发事件。
Do
System.Windows.Forms.Application.DoEvents()
Loop Until AxMSComm1.InBufferCount 0
死循环。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim sum As Integer = 0
Dim i As Integer = 0
Do
i = i + 1
sum = sum + i
Loop Until sum 6000
MsgBox(i)
Debug.Print(sum)
End Sub