我想使用模板将数据从EXCEL复制到带有EXCEL VBA的POWERPOINT演示文稿。它在我使用显式路径时有效。但是我想使用相对路径来运行它,但它会引发以下错误
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
我该怎么办?
答案 0 :(得分:1)
假设模板文件位于Excel文件的同一文件夹中,请更改语句:
Template = CurDir()
为:
Template = ThisWorkbook.Path
答案 1 :(得分:0)
Excel文件与您的potm位于同一位置吗? CurDir()返回excel文件当前保存的路径。因此,如果您的potm保存在子文件夹中,您还需要在路径中使用该子文件夹:
Template = CurDir()
Template = Template & "\SubFolder\TEMPLATE3.potm"