vba application.ontime返回函数值

时间:2014-06-23 19:54:22

标签: excel vba

我的程序中有以下代码:

Application.OnTime Now + TimeValue("00:00:1"), "sub1"

完美地每隔一秒调用sub1。 但我希望使用Applicaiton.Ontime来调用函数func并将值返回给变量。

我已尝试过上述代码的许多更改,但没有一个有效。我仍然可以使用Application.OnTime调用函数或任何其他方法来提出任何建议吗?

提前致谢!

1 个答案:

答案 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
相关问题