我的程序中有以下代码:
Application.OnTime Now + TimeValue("00:00:1"), "sub1"
完美地每隔一秒调用sub1
。
但我希望使用Applicaiton.Ontime
来调用函数func
并将值返回给变量。
我已尝试过上述代码的许多更改,但没有一个有效。我仍然可以使用Application.OnTime
调用函数或任何其他方法来提出任何建议吗?
提前致谢!
答案 0 :(得分:2)
Application.OnTime
调用一个函数,甚至是一个带参数的函数。
可能需要对代码进行一些调整。在这个例子中,我使用模块级变量而不是将值直接返回给函数。
Dim val
Sub Test()
val = Empty
Application.OnTime Now + TimeValue("00:00:3"), "'MyFunction ""string"", 395, ThisWorkbook.Name'"
Do While IsEmpty(val)
DoEvents
Loop
MsgBox val
End Sub
Function MyFunction(arg As String, arg2 As Long, Optional nm As String = vbNullString)
val = arg & arg2 & vbCrLf & nm
End Function