我正在尝试让单元在屏幕上每0.9秒到0.3秒移动一次。
下面的代码仅在ms> 580时每秒才工作,并且在ms <570时以极高的速度(每0,01s?)工作。
我的速度计算有问题吗?
Option Explicit
Sub Gog()
Dim ra As Range
Dim ms As Long
ms = 580
Set ra = Cells.Find(What:="GO", LookIn:=xlValues, LookAt _
:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False)
ra.Offset(-1, 0).Value = "GO"
ra.clearcontents
Application.OnTime (Now + (ms * 0.00000001)), "Gog"
End Sub
答案 0 :(得分:1)
// for save
sharedPrefApi.putList(SharedPrefApi.Key.USER_LIST, userList);
// for retrieve
List<User> userList = sharedPrefApi.getList(SharedPrefApi.Key.USER_LIST, User.class);
的精度不高。文档(https://docs.microsoft.com/en-us/office/vba/api/Excel.Application.OnTime)指出:
EarliestTime的值四舍五入到最接近的秒。
要获得比1秒更高的精度,您可能需要使用Windows计时器,该计时器可以通过以下API调用进行访问:Application.OnTime
和SetTimer
。
这篇SO帖子提供了一些有关如何调用API(包括64位版本)的示例,并说明了需要注意的一些方面:API Timers in VBA - How to make safe