【问题标题】:Delay in closing Powerpoint while doing close via VBA Macro通过 VBA 宏关闭时延迟关闭 Powerpoint
【发布时间】:2020-01-16 18:00:12
【问题描述】:

我在 Microsoft Office Professional Plus 2016 版本的 Powerpoint 文件中有两个宏。 1. saveas 有用吗 2. 关闭 Powerpoint

我使用 PowerPoint /m 命令行选项一一运行这两个宏。它工作正常。但是,几次 2 宏关闭呼叫会间歇性地花费更多时间。当我在调用“关闭”宏后在 PowerPoint 窗口上移动鼠标时,它会立即关闭。我很确定第一个宏保存了文件并成功完成了执行。关闭调用宏代码如下。我不想保存任何工作。我没有运行任何其他 Powerpoint 进程。请建议我怎样才能加快速度?我想知道是什么持有Powerpoint。谢谢。

Sub closeit()


With Application.ActivePresentation

    .Saved = True

    .Close

End With

Application.Quit


End Sub

【问题讨论】:

    标签: vba ms-office powerpoint


    【解决方案1】:

    宏 2 的执行延迟很可能是由于宏 1 完成保存造成的。一次运行两个宏是不可能的,所以 2 不能运行,直到 1 完成。

    两个独立的宏背后的逻辑是什么?看起来太复杂了,你可以把这段代码添加到#1的末尾。

    【讨论】:

    • 我不会同时调用两者。如果我将宏 2 代码行放在宏 1 的末尾(就在 saveas 之后),它不会等待 ActivePresentation.saveas 完成。这就是为什么我把它们分成两个宏。在我调用第二个关闭之前,我已经在我的脚本中写入了成功检查的文件。在调用第二个宏之前,我很确定 saveas 已经完成。出于某种原因,Powerpoint 只是在间歇性关闭窗口之前冻结。如果我在它上面移动鼠标,它会立即关闭。
    • Powerpoint 在 2-3 分钟内响应关闭呼叫
    • 暂停执行以等待其他事件是常见的要求。这是一篇关于 3 种方法的文章。请注意,虽然本文是关于 Excel 的,但它们都适用于 Word for Windows:myonlinetraininghub.com/…
    • 一个警告:myonlinetraininghub 示例中的代码不正确。 #If VBA7 告诉您主机是 Office 2010 还是更高版本,但没有说明位数。您想使用#If Win64(令人困惑的是,它是关于 OFFICE 位数,而不是 Windows)。如果您需要先确定位数,然后确定是 Office 2010 还是更高版本,或者两者兼而有之。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-25
    • 2021-06-14
    相关资源
    最近更新 更多