首页 > 解决方案 > Excel VBA - Application.OnTime 未运行

问题描述

我想要一些帮助来理解为什么函数doSomething没有运行。

计算模式为自动

Sub Test()
    check = 0
    
    Debug.Print "Timer_1: " & Now()
    
    Call runFromNow("doSomething", "00:00:05")
    Do While check = 0
        DoEvents
    Loop
    
    Debug.Print "Timer_2: " & Now()
End Sub

Sub runFromNow(myProcedure As String, Optional myTime As Variant = "00:00:15")
    If myProcedure <> "" Then
        Application.OnTime Now + TimeValue(myTime), myProcedure
        Debug.Print "runFromNow: Activated at " & Now + TimeValue(myTime)
    End If
End Sub

Sub doSomething()
    check = 1
End Sub

标签: excelvba

解决方案


您可以尝试通过声明一个公共变量来完成这一任务。

我写了这个简短的测试给你一个例子:

Public Check As Long

Sub Test()
    
    Call Test_Dam
    
    Debug.Print Check

End Sub

Sub Test_Dam()

    Check = 1

End Sub

您的 Debug.print 将为您提供所需的 1 ;)


推荐阅读