我已经研究过我的问题的答案。我是一个新手,虽然我起得很快。
我想做这样的事情:
Sub name()
Dim waitOne As Date (or Variant?)
waitOne = Application.Wait(Now + TimeValue("00:00:01"))
Selection.Copy
waitOne 'second
Application.SendKeys "%{Tab}", True 'switching to another application
waitOne 'second
Application.SendKeys ("^v"), True
End Sub
或者用以下声明替换waitOne
Sub name()
Function waitSec()
waitOne = Application.Wait(Now + TimeValue("00:00:01"))
End Function
Selection.Copy
waitSec() 'second
Application.SendKeys "%{Tab}", True
waitSec() 'second
Application.SendKeys ("^v"), True
End Sub
两者都不起作用。我希望简化编码以获得更清晰的外观并且更易于阅读。提前感谢您的协助!
答案 0 :(得分:1)
使用Application.Wait等待1秒是非常不可靠的,因为它的时间分辨率本身只有1秒左右。这是对原始代码语法中的错误的补充(如您所知)。
对于短延迟,请使用kernel32中的Sleep:
使用它像:
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub mySub()
Sleep 500 'pauses execution for at least 500 milliseconds
End Sub
所以,使用上面的内容来实现更简单,更可靠的睡眠:)
编辑:只是让你意识到,你没有在sub中定义一个函数,你在外面执行它 - 比如:
Sub mySub()
MsgBox myFunc()
End Sub
Function myFunc()
myFunc = "Hello!"
End Function