Vba PowerPoint VBScript设置文本框文本延迟

Vba PowerPoint VBScript设置文本框文本延迟,vba,powerpoint,Vba,Powerpoint,我正在使用VBScript在powerpoint演示文稿中进行一些编程 当我的幻灯片当前在幻灯片1上时,我调用一些代码来填充幻灯片2和3上的一些文本框,然后调用转换到幻灯片2 但是,当转换开始到幻灯片2时,文本尚未在幻灯片2上设置,即使该代码在转换代码幻灯片之前执行。因此,您可以在切换到幻灯片2后看到填充的文本 有没有办法纠正这种情况 ActivePresentation.Slides(2).Shapes("slide2_text").TextFrame.TextRange.Te

我正在使用VBScript在powerpoint演示文稿中进行一些编程

当我的幻灯片当前在幻灯片1上时,我调用一些代码来填充幻灯片2和3上的一些文本框,然后调用转换到幻灯片2

但是,当转换开始到幻灯片2时,文本尚未在幻灯片2上设置,即使该代码在转换代码幻灯片之前执行。因此,您可以在切换到幻灯片2后看到填充的文本

有没有办法纠正这种情况

        ActivePresentation.Slides(2).Shapes("slide2_text").TextFrame.TextRange.Text = "text value 1"
        ActivePresentation.Slides(3).Shapes("slide_3_title").TextFrame.TextRange.Text = "text value 2"
ActivePresentation.SlideShowWindow.View.GotoSlide 2

您使用的是VBA,而不是VBScript,因此可能需要更改标记以反映这一点。对于您面临的问题,请尝试在更改文本后但转到幻灯片2之前添加一个或多个对DoEvents()的调用。有时需要多达五次调用DoEvents来整理事情,可能需要更多。即使您只使用UI,也可能会在幻灯片上更改某些内容,但窗口的某些部分不会得到更新。在这种情况下,我最小化窗口,恢复它,然后更新它。使用VBA,您可以尝试Application.Visible=False:Application.Visible=True。(或者更新Windows,如果您熟悉WinAPI,以及如何从VBA使用它。)@SteveRindsberg:我认为DoEvents在这种情况下没有帮助。这更适合于在后台计算和UI之间出现死锁或饥饿的情况。为什么不试试呢?如果它有效,你有一个解决方案。如果没有,你最多只损失了几分钟。