我正在尝试编写应该自动替换PowerPoint演示文稿中的某些形状的代码。假定已知要替换的形状的位置编号。 我的第一个想法是删除形状,然后在幻灯片中添加另一个形状。在Excel VBA中替换(powerpoint)形状而不更改其位置编号
sld.Shapes(numShpe).Delete
srcSheet.ChartObjects(chartNum).Copy
sld.Shapes.Paste
的问题是,如果我想再次使用此代码,numShpe
将不再我想更换形状的数量。实际上,当使用delete
时,形状(n)变成形状(n-1)。 因此,如果有一种方法可以在不改变编号的情况下进行删除,那么就不会有任何问题。
有什么想法可以建议吗?
Post 2:
我试过了Siddharth的建议。这里是我的代码的一部分:
Set sld = pres.Slides(slideNum)
Dim shpeName As String
shpeName = "Picture 15"
Dim shpe As PowerPoint.Shape
Set shpe = sld.Shapes(shpeName)
shpe.Delete
srcSheet.ChartObjects(chartNum).Copy
Set shpe = sld.Shapes.PasteSpecial(DataType:=10, link:=msoFalse)
shpe.Name = shpeName
运行它时,我得到了以下错误(关于转让上线Set shpe = slide.Shapes.PasteSpecial(DataType:=10, link:=msoFalse)
)
“形状(未知成员):无效的请求指定的数据类型不可用“。
我不能找出它从何而来......
而不是使用数字,给他们一个名字,然后使用该 –