【发布时间】: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