代码之家  ›  专栏  ›  技术社区  ›  Kalyan

如何使用主模块中Microsoft PowerPoint对象模块中声明的变量值

  •  0
  • Kalyan  · 技术社区  · 2 年前

    我需要引用幻灯片对象模块中的变量来刷新我一周以来一直在挣扎的图表。 有人能帮我吗?

    我只需要将Slide2146449163作为变量,因为SRngMkt、SRngClt等都是在Slide2146469163中定义的。我有其他市场和国家的类似幻灯片

    Public Sub test()
    
    Set ActSld = ActiveWindow.View.Slide
    Debug.Print ActSld.Name
    SldNum = ActSld.SlideID
    'SldNum = ActiveWindow.View.Slide.SlideIndex
    Debug.Print SldNum
    
    Debug.Print ActSld.Name, ActSld.SlideID, ActSld.SlideNumber, ActSld.SlideIndex
    
    Debug.Print ActSld.SRngMkt <--- ActSld should be dynamic. Giving error
    Debug.Print Slide2146449163.SRngClt <--- works perfectly fine
    Debug.Print Slide2146449163.SRngHub
    Debug.Print Slide2146449163.SRngCTSS
    
    End Sub
    
    

    下面是在幻灯片对象模块中编写的代码

    Public Sub cmd_Ink_CEE_Germany_Click()
    
    SRngMkt = "CENTRAL & EASTERN EUROPE"
    SRngClt = "*"
    SRngHub = "Germany"
    SRngCTSS = "Included"
    
    Call test
    
    End Sub
    

    enter image description here

    1 回复  |  直到 2 年前
        1
  •  0
  •   taller    2 年前
    • 将4个参数传递给 Refresh_Charts
    • 顺便说一句, Dim SRngCTSS, SRngClt As String 声明 SRngCTSS 作为一个 Variant 变量您的代码片段中有几个实例。
    Public Sub Refresh_Charts(SRngCTSS As String, SRngClt As String,  SRngHub As String,  SRngCTSS As String)
    '...'
    xlWS.Range("E4").Value = SRngMkt <------- This line is working but Slide2146449163 should be dynamic
    xlWS.Range("J4").Value = SRngClt
    xlWS.Range("O4").Value = SRngHub
    xlWS.Range("T4").Value = SRngCTSS
    '...'
    End Sub
    
    
    Public Sub cmd_Ink_CEE_Germany_Click()
        ' Use local variables
        Dim SRngCTSS As String, SRngClt As String, SRngHub As String, SRngCTSS As String
        SRngMkt = "CENTRAL & EASTERN EUROPE"
        SRngClt = "*"
        SRngHub = "Germany"
        SRngCTSS = "Included"
        ' pass arguments to Refresh_Charts
        Call Refresh_Charts(SRngCTSS, SRngClt,  SRngHub,  SRngCTSS)
    
    End Sub