【发布时间】:2016-12-06 23:17:32
【问题描述】:
我有一个带有 VBA 脚本的 Powerpoint 演示文稿,用于每周更新图像。最近,我还添加了 2 张额外的幻灯片和脚本来更新这些图像。
新图像不会更新,也不会引发错误。如果我逐步完成该过程,它会转到正确的幻灯片,选择正确的形状,但是
Call ppShp.Fill.UserPicture ("blah_blah.png")
不替换图片。
如果我将该行复制到其中一张有效的幻灯片上,它确实有效。
在下面的示例中,第一个有效,第二个无效。
'FEOL *******************************************************************
ActiveWindow.View.GotoSlide (15)
Set ppShp = ActivePresentation.Slides(15).Shapes("FEOL")
ppShp.Select
Call ppShp.Fill.UserPicture("D:\MIT Trends\Images\Feol_Composite.png")
'LICONSEM *******************************************************************
ActiveWindow.View.GotoSlide (16)
Set ppShp = ActivePresentation.Slides(16).Shapes("LICONSEM")
ppShp.Select
Call ppShp.Fill.UserPicture("D:\MIT Trends\Images\LICONSEM.png")
再次,我可以看到它转到正确的幻灯片并选择正确的形状(在“排列”面板中命名)。它只是没有填满。我尝试改变形状ID,但结果是一样的。我知道形状名称和图像名称是正确的。我什至尝试过剪切/粘贴来确定。
使用第一部分的图像填充第二部分不起作用。使用第二部分的图像来填充第一部分。我觉得我一定遗漏了一些明显的东西。
【问题讨论】:
-
已修复但未解释。我复制了幻灯片 15 以创建新的幻灯片 16。我将形状名称复制到新的幻灯片 16 中,替换了旧的形状名称。现在它起作用了。我不明白两者之间的区别。
-
这应该没关系,但是您是否尝试过在没有
Call的情况下执行此操作(您不需要使用此关键字来调用对象的方法。或者您可以尝试删除当前形状并按照答案之一here 中的建议添加带有图片的新形状
标签: image vba powerpoint