[英]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.