vba application.ontime返回函数的值

我的程序中有以下代码:

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

它可以完美地每秒调用一次sub1 。 但是我想用Applicaiton.Ontime来调用一个函数func并将值返回给一个variables。

我已经尝试了许多上面的代码的变化,没有工作。 任何build议,我仍然可以使用Application.OnTime调用一个函数或任何其他方式来这样做?

提前致谢!

加里的评论让我想到了这一点。 这是我尝试过的第一个,但是你可以Application.OnTime调用一个函数,甚至是一个带参数的函数。

它可能需要调整一下你的代码。 在这个例子中,我使用了一个模块级别的variables, 而不是直接返回一个值给函数。

 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