【问题标题】:Update existing PowerPoint from data in Excel从 Excel 中的数据更新现有 PowerPoint
【发布时间】:2015-12-25 13:47:23
【问题描述】:

我的意图是打开现有的 PowerPoint 演示文稿以及现有的 Excel 工作簿,然后从 Excel 运行 VBA 宏,该宏将更新 PowerPoint 中的相应值。

为此,我通过突出显示特定文本框并使用了Format -> Align,确定了我想在 PowerPoint 中更新的相应文本框的形状名称。然后我在 Excel 中创建了 3 列的值:

 Slide index   Shape name               Value
 1            Title 2                  =CONCATENATE("REPORT ";YEAR(TODAY()))
 1            Placeholder for date1    =TODAY()

我使用宏(遗憾的是我不记得我是从哪个网站复制的):

Sub writedata()
Dim c As Object
Dim shapeslide
Dim shapename
Dim shapetext

Set ppapp = GetObject(, "Powerpoint.application")
Set pppres = ppapp.ActivePresentation

For Each c In Blad2.Range("a2:a" & Blad2.Range("a" & Rows.Count).End(xlUp).Row)
shapeslide = Blad2.Range("a" & c.Row)
shapename = Blad2.Range("b" & c.Row)
shapetext = Blad2.Range("c" & c.Row).Text
pppres.Slides(shapeslide).Shapes(shapename).TextEffect.Text = shapetext
Next

End Sub

我的问题是Slide 1 在其对应的Shape name 中根本不会更新。执行此宏时发生的唯一操作是,由于某种原因,Slide 3 将其 字体大小 修改为 35 号而不是 16 号。我不明白为什么会这样.更改字体大小的形状的形状名称既不会写入 Excel 工作簿,也不会与在 Excel 中写入的两个形状名称之一相同。

希望有人能对此有所了解。

【问题讨论】:

  • 可能不是您的问题,因为您可能使用的是形状而不是文本框。但是您是否尝试将数据写入您想要使用的文本框:.TextFrame.TextRange = "TEXT TO POPULATE / VARIABLE"

标签: vba excel powerpoint


【解决方案1】:

让您的幻灯片和形状由 excel 列出,以确保它们符合您的期望。有时它们的名称/ID 确实很奇怪。由于您的幻灯片不应该改变,而幻灯片不应该改变......我们绝对需要仔细检查这些。这将遍历每张幻灯片和该幻灯片上的每个形状,并列出幻灯片 ID 和名称以及每个形状 ID 和名称。我有一个演示文稿,由于某种原因,第一张幻灯片是幻灯片 297。然后幻灯片 250 是第二个。第 50 张幻灯片是第三张。其余的也都是奇数。 o.O

打开即时窗口以查看调试文本。

Sub SlidesShapes()
Dim i As Integer, j As Integer 

Set ppapp = GetObject(, "PowerPoint.Application")
Set ppres = ppapp.ActivePresentation

For i = 1 To ppres.Slides.Count'slides and shapes start counting at 1 not 0
    Debug.Print ppres.Slides(i).SlideID
    Debug.Print ppres.Slides(i).Name
    For j = 1 To ppres.Slides(i).Shapes.Count
        Debug.Print ppres.Slides(i).Shapes(j).ID
        Debug.Print ppres.Slides(i).Shapes(j).Name
    Next
Next

End Sub

另外,当您单步执行原始代码(不是这个 sn-p)时,您在本地窗口中看到的每一步是什么?有什么奇怪的事情发生在你身上吗?任何变量都填充了意想不到的或不完全正确的东西?

【讨论】:

    猜你喜欢
    • 2016-07-04
    • 2019-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-17
    • 1970-01-01
    • 2011-08-23
    相关资源
    最近更新 更多