【问题标题】:Outlook VBA timed closure of a userformOutlook VBA 定时关闭用户窗体
【发布时间】:2012-01-14 15:10:27
【问题描述】:

我正在尝试设置一个用户表单,它会出现,停留 10 秒,然后自动关闭。 我之前在 Excel 中使用OnTime 方法完成了此操作:

Sub Example()
     Application.OnTime EarliestTime:=Now + TimeValue("00:00:10"), _ 
     Procedure:="Hide_userform2"
     UserForm2.Show
End Sub

Sub Hide_userform2()
     UserForm2.Hide
End Sub

但是,由于 Outlook 无法识别OnTime 方法,我一直在尝试使用Timer 语句:

Sub example2()
Strt = Timer
Do While Timer < Strt + 10
    UserForm2.Show
Loop
UserForm2.Hide
End Sub

这样做的问题是,当用户窗体打开时,宏(包括循环)会暂停,直到手动关闭用户窗体...

非常感谢任何有关此解决方法的帮助。

干杯!

【问题讨论】:

  • 你能解释一下你的目标吗?这可能会澄清事情并提供更好的解决方案。
  • @JP 我正在自动化数据验证过程,并且需要内置通知自动化进度和可能影响结果的任何错误。但是,由于该过程通常在没有任何人监视的情况下运行,因此我需要自动关闭任何通知,以便验证可以继续。我试图避开msgbox,以便在/如果我需要扩展它们或构建更复杂的通知时,我可以在通知中拥有更大的灵活性。

标签: vba outlook timer userform


【解决方案1】:

我进行了一些测试,问题似乎是,一旦您显示用户表单,它就会获得控制权并且不会将其返回给example2()

似乎可行的是,如果您将以下代码放入表单的Acitvate 子中,它将正确隐藏。这可能不是您想要的,您可能会将表单用于其他事情,这个过程会搞砸,但它会让您朝着正确的方向前进。

Private Sub UserForm_Activate()
    Strt = Timer
    Do While Timer < Strt + 10
        DoEvents 'please read linked documentation on this
    Loop
    UserForm2.Hide
End Sub

使用DoEvents 将确保表单正确显示,但可能会产生一些不需要的副作用。请务必阅读 Jeff Atwood 撰写的 this Microsoft articleblog post,虽然不一定是关于 VBA,但很有趣。

【讨论】:

    【解决方案2】:

    This page 提供了一个自定义计时器插件 (.xla),可能适合您。这与您上面的代码的想法相同(这将采用代码隐藏的形式):

    Dim WithEvents CountdownTimer As TMTimer.clsTimer
    
    Private Sub startCounter()
        Set CountdownTimer = TMTimer.createTimer
        With CountdownTimer
            .CountdownDurationMilliSecs = 10 * 1000
            .TimerType = .TimerTypeCountdown
            .startTimer
        End With
    End Sub
    
    Private Sub CountdownTimer_CountdownComplete()
        Me.Hide
    End Sub
    
    Private Sub UserForm_Activate()
        startCounter
    End Sub
    

    【讨论】:

    • 感谢 Kaveman 的大力支持,但不幸的是,我需要在没有自定义插件的情况下运行它...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-11
    • 1970-01-01
    • 1970-01-01
    • 2018-11-01
    • 1970-01-01
    相关资源
    最近更新 更多