Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel vba application.ontime返回函数值_Excel_Vba - Fatal编程技术网

Excel vba application.ontime返回函数值

Excel vba application.ontime返回函数值,excel,vba,Excel,Vba,我的课程中有以下代码: Application.OnTime Now+TimeValue(“00:00:1”),“sub1” 每秒钟调用sub1一次效果非常好。 但是我想使用application.Ontime调用函数func,并将值返回给变量 我尝试过对上述代码进行多次修改,但都没有成功。有什么建议我仍然可以使用Application.OnTime调用函数或其他方法来实现吗 提前谢谢 加里的评论让我思考了一下。这是我第一次尝试,但您可以使用应用程序.OnTime调用函数,甚至可以调用带参数的函

我的课程中有以下代码:

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

每秒钟调用
sub1
一次效果非常好。 但是我想使用
application.Ontime
调用函数
func
,并将值返回给变量

我尝试过对上述代码进行多次修改,但都没有成功。有什么建议我仍然可以使用
Application.OnTime
调用函数或其他方法来实现吗


提前谢谢

加里的评论让我思考了一下。这是我第一次尝试,但您可以使用
应用程序.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

使用OnTime计划子调用,并让子调用执行函数调用。谢谢David,我将尝试一下。但实际上我需要同时调用
sub1
MyFunction
。如何使用
应用程序调用多个函数。Onime
?嗨,David,我的问题比这更复杂,更清楚地说,我想做的是在同一工作表上的数据每次更新时计算一些值(数据每3秒更新一次),然后将每次计算的值存储到数组中。但事实证明,这里的方法在这个数组中给出了相同的值(根据工作表上最后显示的数据计算)。我在想,我是否必须为每次计算创建一个新的工作表,否则我猜公式仍然只获取当前显示的数据,而不是将以前的数据催眠并计算并存储在数组中?VBA不支持多线程,因此,您不可能在任何给定时间使用
OnTime
来调度多个过程。当然,您可以安排多个过程,但它们将按顺序执行,而不是并发执行。这是否回答了您最初的问题“如何从application.ontime运行函数”?好的,我明白了。非常感谢大卫!不客气!如果你有一个更具体的问题,我建议你作为一个新问题提问。也许有一种方法可以满足您的需求,但我们需要您迄今为止已经尝试过的更多细节和示例代码。祝你好运