【问题标题】:VBA do not copy range to .pptVBA 不将范围复制到 .ppt
【发布时间】:2018-02-25 04:19:55
【问题描述】:

我希望 VBA 将所有工作表粘贴到示例 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

【问题讨论】:

    标签: vba excel powerpoint


    【解决方案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
    

    移除 cmets 再试一次。

    【讨论】:

    • 谢谢,第一行是正确的,现在正在工作 :) Set mySlide = myPresentation.Slides(SlideNumb) 但第二部分,用于形状调整,我真的需要它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-24
    • 2019-03-26
    • 2017-03-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多