powerpoint VBA公共变量在幻灯片之间不可用
我在powerpoint vba模块中有以下代码。它开始工作,直到下一张幻灯片,然后什么都没有,即使变量已设置。在幻灯片1中,msgbox会告诉我幻灯片总数,但在幻灯片2中,msgbox会告诉我0。在幻灯片1上设置变量TotalSlides时,它是如何在幻灯片之间重置的?我错过了什么powerpoint VBA公共变量在幻灯片之间不可用,vba,global-variables,powerpoint,Vba,Global Variables,Powerpoint,我在powerpoint vba模块中有以下代码。它开始工作,直到下一张幻灯片,然后什么都没有,即使变量已设置。在幻灯片1中,msgbox会告诉我幻灯片总数,但在幻灯片2中,msgbox会告诉我0。在幻灯片1上设置变量TotalSlides时,它是如何在幻灯片之间重置的?我错过了什么 Public TotalSlides As Integer Public Sub OnSlideShowPageChange(ByVal Wn As SlideShowWindow) 'Gets tota
Public TotalSlides As Integer
Public Sub OnSlideShowPageChange(ByVal Wn As SlideShowWindow)
'Gets total slides at slide 1, saves to public var TotalSlides
If Wn.View.CurrentShowPosition = 1 Then
With ActivePresentation
TotalSlides = .Slides(.Slides.Count).SlideNumber
End With
End If
'Test output of Public variable
MsgBox TotalSlides, vbOKOnly
End Sub
在Docs.SO上。如果我理解正确(不熟悉PPT对象模型),您的公共变量将在类模块(幻灯片对象)中声明。如果你需要一个全局变量,你需要在一个标准模块的全局范围内声明它。谢谢你的回复。我应该说,这个变量是在一个标准模块中声明的,确切地说是module1。这就是为什么我对它不起作用感到困惑的原因。可能还包括您用于设置事件处理的代码,以防这些代码与我在PowerPoint 2016(PC)x32上的预期效果相关。我假设这是项目中唯一的代码,并且TotalSlides没有在VBA项目的其他地方或项目外部被操纵?当然,由于代码被放置在SlideShowPageChange的伪事件中,每次幻灯片放映更改幻灯片时,实际上都会重置变量,但它应该(对我来说)重置为幻灯片组中的幻灯片总数,在本例中始终是相同的数。@Tim,这就是实现本例中需要完成的所有代码。