excel - VBA 如何更快地循环?[X < 0.51 秒]
问题描述
循环频率
Dim I As Long
For I = 1 To 200
循环间隔(VBA 中止了不到 0.51 分钟?!)[这是这里的问题.....]
Dim X As Long
X = 0.51
Dim EndTime As Date
开始循环
For Each Contr In Yard.Controls
设置条件
If Contr.Name = "X" And Userform1.Loop_Textbox.Value = 1 Then
闪光 1
EndTime = DateAdd("s", X, Now())
Do While Now() < EndTime
DoEvents
If Userform1.Loop_Textbox.Value = 0 Then Exit Do
Loop
Contr.BackColor = &H80000012&
Contr.SpecialEffect = fmSpecialEffectEtched
闪光 2
EndTime = DateAdd("s", X, Now())
Do While Now() < EndTime
DoEvents
If Userform1.Loop_Textbox.Value = 0 Then Exit Do
Loop
Contr.BackColor = &H80000012&
Contr.SpecialEffect = fmSpecialEffectFlat
结束
End If
Next Contr
Next I
解决方案
其Date
准确性不足以跟踪那么短的时间段。而是使用定时器功能。
这是一个示例,让选定的单元格背景颜色闪烁 11 次(从白色到黑色),中间有 0.51 秒的停顿:
Public Sub Blink()
Dim i As Long
For i = 0 To 10
Dim StartTime As Single
StartTime = Timer
Do While StartTime + 0.51 > Timer 'wait 0.51 s
DoEvents
Loop
If Selection.Interior.ColorIndex = 1 Then
Selection.Interior.ColorIndex = 2
Else
Selection.Interior.ColorIndex = 1
End If
DoEvents
Next i
End Sub
推荐阅读
- python - 使用形式数学描述 python 中的选择函数
- java - 如何取消 Stripe 计划中的所有订阅?
- mrtk - 如何修改 GrabPointer 预制件以允许场景中超过默认的 64 个碰撞器?
- python - openpyxl - x 和 y 轴刻度的增量
- node.js - 如何使用 NVM 在我的机器上升级所有版本的 npm?
- apache-kafka - 使用多个分区时,在 kafka 标记逻辑部分的结尾
- xml - 具有不同 XML 结构的元素的 Xpath
- javascript - Jquery在表中动态创建下拉列表
- javascript - 更改默认键以在 chrome 上转义指针锁定
- javascript - 解析或修复具有特殊“未定义”值的 JSON?