Excel VBA Mypresentation.ApplyTemplate与通用path文件

我想用EXCEL VBA模板将数据从EXCEL复制到POWERPOINT演示文稿。 当我使用明确的path时,它工作。 不过,我想用一个相对path来运行它,但它抛出以下错误

Sub PowerPoint() Dim rng As Excel.Range Dim PowerPointApp As PowerPoint.Application Dim myPresentation As PowerPoint.Presentation Dim mySlide As PowerPoint.Slide Dim myShapeRange As PowerPoint.Shape Dim Template As String 'Copy Range from Excel Set rng = Worksheets("Contact Page").Range("C2:O38") 'Create an Instance of PowerPoint On Error Resume Next 'Is PowerPoint already opened? Set PowerPointApp = GetObject(class:="PowerPoint.Application") 'Clear the error between errors Err.Clear 'If PowerPoint is not already open then open PowerPoint If PowerPointApp Is Nothing Then Set PowerPointApp = CreateObject(class:="PowerPoint.Application") 'Handle if the PowerPoint Application is not found If Err.Number = 429 Then MsgBox "PowerPoint could not be found, aborting." Exit Sub End If On Error GoTo 0 'Make PowerPoint Visible and Active PowerPointApp.Visible = True PowerPointApp.Activate 'Create a New Presentation Template = CurDir() Template = Template & "\TEMPLATE3.potm" Set myPresentation = PowerPointApp.Presentations.Add myPresentation.ApplyTemplate (Template) 'myPresentation.ApplyTemplate ("C:\Users\Oriol\Documents\3mundi\Reporting\BR\New Model\TEMPLATE3.potm") myPresentation.PageSetup.SlideSize = ppSlideSizeOnScreen 

错误

我该怎么办?

假设模板文件位于Excel文件的同一文件夹中,请更改以下语句:

 Template = CurDir() 

至:

 Template = ThisWorkbook.Path 

Excel文件与你的potm位于相同的位置吗? CurDir()返回excel文件当前保存的path。所以如果你的potm保存在一个子文件夹中,你也需要在path中使用该子文件夹:

 Template = CurDir() Template = Template & "\SubFolder\TEMPLATE3.potm"