VBA不会将范围复制到.ppt

时间:2017-10-25 09:47:56

标签: excel vba excel-vba powerpoint powerpoint-vba

我希望VBA将所有工作表粘贴到示例PPT中,该PPT从特定幻灯片开始,例如幻灯片NUM.3

但是现在使用的代码不会将所选区域粘贴到PPT文件中。你能帮帮我吗?

这是我的代码:

    For Each ws In ActiveWorkbook.Worksheets
        ws.Activate
        Set rng = ThisWorkbook.ActiveSheet.Range("A1:Z100")
'        Set mySlide = myPresentation.Slides.Add(myPresentation.Slides.Count + 1, 12)
'        SlideNumb = myPresentation.Slides.Count
        Set mySlide = myPresentation.Slides(SlideNumb).Select '(myPresentation.Slides.Count + 1, 12) '(myPresentation.Slides.Count + 1, 12)
        rng.Copy
        mySlide.Shapes.PasteSpecial DataType:=2  '2 = ppPasteEnhancedMetafile
        Set myShape = mySlide.Shapes(mySlide.Shapes.Count)
            myShape.LockAspectRatio = msoFalse
            myShape.Left = 36.72
            myShape.Top = 112.32
            myShape.Width = 854.64
            myShape.Height = 397.44
        Application.CutCopyMode = False
        ShtNum = ShtNum + 1
        SlideNumb = SlideNumb + 1
    Next ws

1 个答案:

答案 0 :(得分:1)

改变这个:

Set mySlide = myPresentation.Slides(SlideNumb).Select 

对此:

Set mySlide = myPresentation.Slides(SlideNumb) 

删除此:

    Set myShape = mySlide.Shapes(mySlide.Shapes.Count)
        myShape.LockAspectRatio = msoFalse
        myShape.Left = 36.72
        myShape.Top = 112.32
        myShape.Width = 854.64
        myShape.Height = 397.44

删除评论并再试一次。