我正在尝试在 VB 中为 Excel 电子表格编写一个宏,该宏以特定的时间间隔执行,该时间间隔由电子表格本身包含的值(以 Hz 为单位)定义。我的问题是,我找到的用于以这种方式完成自动宏的代码似乎只允许秒精度,因此任何高于 1Hz 的频率都是不可能的。如果可能的话,我希望能够达到 10Hz 左右,这需要毫秒精度。
我是VB新手,所以不太了解。这是代码:
Sub Macro2()
Range("K1").Select
Dim f As Single
f = ActiveCell.Value
Dim t As Integer
t = 1 / f
dTime = Now + TimeSerial(0, 0, t)
Application.OnTime dTime, "Macro2"
Range("J1").Select
Dim c As Integer
c = ActiveCell.Value
c = c Xor 1
ActiveCell.Value = c
End Sub
有没有办法使用这种方法获得毫秒精度?
最佳答案
就这么简单 Application.Wait (Now + 0.000001)
等待 1/10 秒:
Sub Macro2()
' Macro2 Macro
Range("C1").FormulaR1C1 = "1"
Application.Wait (Now + TimeValue("0:00:01")) '1sec
Range("C1").FormulaR1C1 = "2"
Application.Wait (Now + 0.000001) '1/10sec
Range("C2").Select
Sleep (100)
End Sub
关于vba - VBA Excel宏毫秒计时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10438338/