在 Excel VBA 中,可以使用 MsgBox 函数来弹出选择框,并使用 Application.Wait 方法来等待一段时间后自动关闭选择框。

下面是一个示例代码:

Sub AutoCloseMessageBox()
    Dim result As VbMsgBoxResult
    Dim timeout As Date
    
    ' 弹出选择框
    result = MsgBox('是否关闭选择框?', vbYesNo)
    
    ' 获取当前时间
    timeout = Now + TimeValue('00:00:02') ' 延时2秒
    
    ' 等待2秒,或者直到用户选择了一个选项
    Do While Now < timeout And result = 0
        DoEvents ' 允许其他事件处理
        result = MsgBox('是否关闭选择框?', vbYesNo)
    Loop
    
    ' 如果用户没有选择,则自动关闭选择框
    If result = 0 Then
        MsgBox '自动关闭选择框'
    End If
End Sub

在这个示例中,首先使用 MsgBox 函数弹出选择框,然后使用一个 Do While 循环来等待用户选择或者等待 2 秒的时间。在循环中,使用 DoEvents 函数来允许其他事件处理,以免 VBA 进入无响应状态。如果用户在 2 秒内没有选择任何选项,那么 result 变量的值将为 0,即表示没有选择。在最后的条件判断中,如果 result 为 0,则表示用户没有选择,弹出一个提示框来自动关闭选择框。


原文地址: https://www.cveoy.top/t/topic/jrsT 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录