【问题标题】:Run macro if button is not clicked in certain amount of time如果在一定时间内未单击按钮,则运行宏
【发布时间】:2013-11-18 22:26:48
【问题描述】:

我每天早上使用任务计划程序自动打开 3 个电子表格。打开后,我使用 VBA 自动更新、保存和关闭每个文件。

执行此操作的代码完美运行,但如果我想打开电子表格来编辑它们会带来一些麻烦(我必须专门打开它们才能不运行宏并因此自动关闭)。我希望能够正常打开电子表格进行编辑,而不会自动关闭它们。

一个可能的解决方案是弹出一个 MsgBox。如果 MsgBox 在 15 秒(左右)内没有被确认,那么文件会自动关闭。如果 MsgBox 被确认,则文件不会关闭。

有人知道怎么做吗?

【问题讨论】:

  • 您可以通过按 SHIFT 打开工作簿。这样宏就不会运行。 Msgbox 选项不是一个可行的选项,因为当显示消息框时,整个代码将停止。 Excel 宏不能异步运行。但是,您可以做的是显示一个可以在 15 秒内自动关闭的用户表单。
  • 感谢您的建议。我正在尝试显示一个用户表单,该用户表单将使用户可以选择选中一个框以保持电子表格打开。如果用户在 15 秒后没有选中该框,我希望电子表格保存并关闭。我在为此编写代码时遇到了一些问题。你能帮忙吗?
  • 请重新阅读我上面的评论。
  • 请原谅我的误解。我对此很陌生。如何让用户表单在 15 秒后自动关闭?

标签: vba excel


【解决方案1】:

第一
使用以下代码创建一个名为 (Close) 的子例程

Unload UserForm1 

秒:15 秒后调用该例程

Private Sub UserForm_Initialize() 
    tmeKill = Time + TimeValue("00:00:15")      
    Application.OnTime tmeKill, "Close" 
End Sub 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-25
    • 2019-03-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多