“自上次以来的天数…”VBA PowerPoint幻灯片更新

“自上次以来的天数…”VBA PowerPoint幻灯片更新,vba,powerpoint,Vba,Powerpoint,我的第一篇帖子,如果我错过了一些明显的东西,或者无意中重复了最近讨论过的问题,请道歉 因此,我正在PowerPoint 2016中制作一个演示文稿: 我的演示文稿另存为启用宏。 宏在宏安全性中启用。 幻灯片将在大屏幕上全天候播放。 跑步时,不会有人与人之间的互动。 在更新新的新闻/信息之前,幻灯片将运行长达一个月。 我想做的是: 28号位置的滑梯距离上次失时事故滑梯还有几天 如果手动触发,我的用于更新文本框的宏可以很好地工作,我将发布此部分,以便您可以确切地看到我试图触发的内容 Sub Coun

我的第一篇帖子,如果我错过了一些明显的东西,或者无意中重复了最近讨论过的问题,请道歉

因此,我正在PowerPoint 2016中制作一个演示文稿:

我的演示文稿另存为启用宏。 宏在宏安全性中启用。 幻灯片将在大屏幕上全天候播放。 跑步时,不会有人与人之间的互动。 在更新新的新闻/信息之前,幻灯片将运行长达一个月。 我想做的是:

28号位置的滑梯距离上次失时事故滑梯还有几天

如果手动触发,我的用于更新文本框的宏可以很好地工作,我将发布此部分,以便您可以确切地看到我试图触发的内容

Sub Countup()
Dim thedate As Date
Dim daycount As Long
Dim Icount As Integer
ActivePresentation.Slides(28).Shapes("LTAno").Select
thedate = "10/04/2017"
daycount = DateDiff("d", thedate, Now)
ActivePresentation.Slides(28).Shapes("LTAno").TextFrame.TextRange.Text = daycount
End Sub
在这上面-这两个部分在一个模块中-是问题代码:

Public Sub OnSlideShowPageChange(ByVal SSW As SlideShowWindow)
If SSW.View.CurrentShowPosition = 28 Then
Call Countup
End If
End Sub
我使用msgbox检查了一下,以确保幻灯片28确实是幻灯片28,并且没有出现任何问题。因此,我将msgbox行更改为CALL函数

我想这就是我的问题所在?我的头很痛。。。谁能给我指一下正确的方向吗


无论我如何开始幻灯片放映,幻灯片上的数字都不会更新,除非我手动启动宏。

不要选择形状。例如:

Sub Countup()
    Dim thedate As Date
    Dim daycount As Long
    Dim Icount As Integer
    Dim vShape 
    Set vShape = ActivePresentation.Slides(28).Shapes("LTAno")
    thedate = "10/04/2017"
    daycount = DateDiff("d", thedate, Now)
    vShape.TextFrame.TextRange.Text = daycount
End Sub

你的代码成功了!我对OnStLoSoWoPoCchange的变化感到非常紧张,我不认为我在宏中试图做的事情可能过于复杂,或者只在编辑模式下工作。现在我看清楚了。非常感谢-你今天教了我一些东西!: