Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1538|回复: 5

[已解决]VBA自动生成PPT贺报

[复制链接]
发表于 2022-2-8 16:10 | 显示全部楼层 |阅读模式
3学分
最佳答案
2022-2-8 16:10
PowerPoint VBA很少使用。
测试过程中发现:需要给复制幻灯片、粘贴幻灯片、给文本框写入文字等操作留有一定的响应时间。

贺报制作.v1.gif

期望效果.rar

1016.53 KB, 下载次数: 13

原始.rar

1005.31 KB, 下载次数: 3

最佳答案

查看完整内容

PowerPoint VBA很少使用。 测试过程中发现:需要给复制幻灯片、粘贴幻灯片、给文本框写入文字等操作留有一定的响应时间。
发表于 2022-2-8 16:10 | 显示全部楼层    本楼为最佳答案   
PowerPoint VBA很少使用。
测试过程中发现:需要给复制幻灯片、粘贴幻灯片、给文本框写入文字等操作留有一定的响应时间。

贺报制作.v1.gif
回复

使用道具 举报

 楼主| 发表于 2022-2-8 16:11 | 显示全部楼层
本帖最后由 百里图苏 于 2022-2-8 16:12 编辑

自学的代码
Sub 贺报生成()

    Dim weizhi As String
    Dim idx As Integer
    Dim wb1 As String, wb2 As String, wb3 As String

   Path = ActivePresentation.Path

  weizhi = Path & "\贺报一键生成贺报数据.xlsx"

    wb1 = "文本1"
    wb2 = "文本2"
    wb3 = "文本3"
    wb4 = "文本4"
    Dim MyexcelApp As New Excel.Application
    Dim MyexcelBook As New Excel.Workbook
    Dim MyexcelSheet As New Excel.Worksheet
    Pathstr = weizhi
    Set MyexcelBook = MyexcelApp.Workbooks.Open(Pathstr)
    Set MyexcelSheet = MyexcelBook.Worksheets(1)
    MyexcelSheet.Activate
    Dim i As Integer

        Dim oPPT As Presentation
        Dim oSlide As Slide
        '当前ppt演示文稿
        Set oPPT = PowerPoint.ActivePresentation
                With oPPT
            '第一个幻灯片
             Set oSlide = .Slides(1)
            '复制到剪贴板
            oSlide.Copy



        End With
    For i = 1 To 1000

            '粘贴使其成为第2个幻灯片
            oPPT.Slides.Paste (i + 1)

        ActivePresentation.Slides(i + 1).Shapes(wb1).TextFrame.TextRange.Text = MyexcelSheet.Cells(i + 1, 1).Value '地区
        ActivePresentation.Slides(i + 1).Shapes(wb2).TextFrame.TextRange.Text = MyexcelSheet.Cells(i + 1, 2).Value '地区


        If MyexcelSheet.Cells(i + 2, 1).Value = "" Then

    MyexcelBook.Close


    Set MyexcelApp = Nothing
    Set MyexcelBook = Nothing
    Set MyexcelSheet = Nothing
            Exit Sub
        End If
    Next i

    MyexcelApp.Workbooks.Close
    MyexcelBook.Close
    MyexcelApp.Close

    Set MyexcelApp = Nothing
    Set MyexcelBook = Nothing
    Set MyexcelSheet = Nothing
End Sub
改代码只设置了两个可变的文本框,后期运用起来较麻烦,想要实现全自动化的一个流程,求各位老师帮助改进,非常感谢!



回复

使用道具 举报

 楼主| 发表于 2022-2-8 16:14 | 显示全部楼层
原始效果里面只设置了两可变量的文本框(标白部分)
11微信截图_20220208161407.jpg
回复

使用道具 举报

 楼主| 发表于 2022-2-8 23:51 | 显示全部楼层
求求不要沉啊
回复

使用道具 举报

 楼主| 发表于 2022-2-9 08:33 | 显示全部楼层
日常求助自顶
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-16 21:44 , Processed in 0.894647 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表