VBA:复制Excel单元格并粘贴为Powerpoint中的图像

VBA: Copy Excel Cell and paste as image in Powerpoint

提问人:Mario Elgueta Mendoza 提问时间:11/8/2023 最后编辑:Tim WilliamsMario Elgueta Mendoza 更新时间:11/9/2023 访问量:45

问:

我是 VBA 的新手,我正在尝试通过 Powerpoint 模板创建自动报告。 我编写了以下代码:

Sub Autoreport()
    Dim shtSheet1 As Worksheet

    Dim str1 As String
    Dim strA2 As String
    Dim strF3 As String

    Dim ID As Long

    Dim objPPT As Object
    Dim objPres As Object
    Dim objSld As Object
    Dim objShp As Object

    Set shtSheet1 = Worksheets("PRUEBATD")
        
    Set objPPT = CreateObject("Powerpoint.Application")
    objPPT.Visible = True
    
    Set objPres = objPPT.Presentations.Open(ThisWorkbook.Path & "\report.pptx")

    objPres.SaveAs ThisWorkbook.Path & "\Autoreport.pptx"
   
    ID = 3

    Do While shtSheet1.Cells(ID, 1) <> ""
        
        str1 = shtSheet1.Cells(ID, 1)
        strA2 = shtSheet1.Cells(ID, 2)
        strF3 = shtSheet1.Cells(ID, 3)

        Set objSld = objPres.slides(1).Duplicate
        For Each objShp In objSld.Shapes
            If objShp.HasTextFrame Then
                If objShp.TextFrame.HasText Then

                    objShp.TextFrame.TextRange.Replace "<1>", str1
                    objShp.TextFrame.TextRange.Replace "<A2>", strA2
                    objShp.TextFrame.TextRange.Replace "<F3>", strF3

                End If
            End If
        Next
        ID = ID + 1
    Loop
    objPres.slides(1).Delete
    objPres.Save
    objPres.Close

代码有效,但我只设法将单元格数据从 excel 获取到 powerpoint。 我正在处理的 excel 文件有 137 个变量,我需要制作 300 份报告。 我需要将单个excel单元格(不是范围)粘贴为PowerPoint模板中的图片

这是我的PPT模板,突出显示的文本框是我需要包含的一些变量:
enter image description here

这是我从实际代码中得到的一个例子:
enter image description here

这是我需要获取PPT的Excel数据的示例,我需要它作为图片来保留条件格式图:

enter image description here

Excel VBA 幻灯片

评论

0赞 taller 11/9/2023
如何确定幻灯片上 137 张图像的位置?都在同一张幻灯片上吗?请分享带有屏幕截图的预期输出。
0赞 PeterT 11/9/2023
获取每个单元格的值并将其设置为形状的文本(例如矩形或文本框)。
0赞 Tim Williams 11/9/2023
如果您有那么多项目要复制,那么您应该考虑在Excel中创建一个表格,您可以使用它来驱动该过程:表格中的每一行都应引用需要复制的单个单元格(例如,工作表名称和单元格地址,以及它需要在PPT中的位置)。我不认为您可以将复制的单元格图像粘贴到另一个形状中以替换文本。
0赞 Tim Williams 11/9/2023
您可以根据其文本找到 PPT 形状,记录其顶部/左侧属性,将其删除,然后将单元格图片粘贴到同一位置。如上所述,所有这些都可以从表中驱动。

答: 暂无答案