簡體   English   中英

嘗試激活演示文稿時出現編譯錯誤

[英]Compile Error when I try to activate presentation

我很為難,我覺得我一定是在失去了一些東西愚蠢...

該宏旨在調用和運行其代碼包含在另一個文件中的宏,並將該宏“應用於”打開的演示文稿(從中運行初始宏)。 我收到了編譯錯誤:倒數第二行找不到方法或數據成員。 當我注釋掉該行時,代碼可以正常運行,但是將宏應用於錯誤的表示形式。

有任何想法嗎?

預先感謝,喬

Function IsPresentationOpen(Name As String) As Boolean
    Dim codePres As Presentation
    On Error Resume Next
    Set codePres = Application.Presentations.Item(Name)
    IsWorkBookOpen = (Not codePres Is Nothing)

End Function

Sub Run_Macro()

    Dim BriefingTemplate As Presentation
    Set BriefingTemplate = Application.ActivePresentation

'Open Joe's Code Workbook
    Dim xRet As Boolean
    xRet = IsPresentationOpen("CODE.potm")
    If xRet Then
    Else
        Presentations.Open "Direcory\CODE.potm"
    End If

'Run Macro
    BriefingTemplate.Activate                            '<<This is the line w/ the error
    Application.Run ("'CODE.potm'!Macro"), BriefingTemplate


End Sub

Sub a_RunAll_PM(BriefingTemplate As Presentation)

BriefingTemplate.Activate

  Call a_Scorecards_PM
  Call CurrentTemps_PM
  Call RadarSat_PM
  Call Severe_PM
  Call Day1_PM
  Call Day2
  Call JetStream_PM
  Call Operational_Impact_PM
  Call D1_Headlines_PM
  Call D2_Headlines
End Sub

Sub a_Scorecards_PM()
   Dim oPic As Shape
    Set oPic = ActivePresentation.Slides(1).Shapes.AddPicture( _
    FileName:="H:\Weather Briefs\Daily Ops Scorecards\SWA_Page_1.jpg", _
    LinkToFile:=msoFalse, _
    SaveWithDocument:=msoTrue, Left:=0, Top:=0, _
    Width:=720, Height:=540)

    ActivePresentation.Slides(1).Copy
    ActivePresentation.Slides.Paste 24

End Sub

與其“激活”您要更新的演示文稿,不如將演示文稿作為參數傳遞給需要訪問它的每個過程:

'I am assuming "a_RunAll_PM" is what is called "Macro" in your original question code
Sub a_RunAll_PM(BriefingTemplate As Presentation)

  'Removed "Call" as that is obsolete
  a_Scorecards_PM BriefingTemplate '<-- pass the presentation as a parameter
  CurrentTemps_PM BriefingTemplate '<-- may need to pass to other procedures too?
  RadarSat_PM
  Severe_PM
  Day1_PM
  Day2
  JetStream_PM
  Operational_Impact_PM
  D1_Headlines_PM
  D2_Headlines
End Sub

Sub a_Scorecards_PM(pres as Presentation)
   Dim oPic As Shape
    'Use the "pres" parameter rather than "ActivePresentation"
    Set oPic = pres.Slides(1).Shapes.AddPicture( _
    FileName:="H:\Weather Briefs\Daily Ops Scorecards\SWA_Page_1.jpg", _
    LinkToFile:=msoFalse, _
    SaveWithDocument:=msoTrue, Left:=0, Top:=0, _
    Width:=720, Height:=540)

    pres.Slides(1).Copy
    pres.Slides.Paste 24

End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM