形状。键入…在Excel/PPT VBA中删除
我正在尝试删除幻灯片上的现有形状(图片),并尝试了以下操作,但均无效。作为背景,此代码在Excel中运行,但与powerpoint交互,这只是代码的一部分。其他一切都很好(PPPres已经定义好了)。我还尝试了索引形状(即使它是幻灯片上唯一的一个)和使用for循环,但似乎仍然无法使其工作形状。键入…在Excel/PPT VBA中删除,excel,powerpoint,vba,Excel,Powerpoint,Vba,我正在尝试删除幻灯片上的现有形状(图片),并尝试了以下操作,但均无效。作为背景,此代码在Excel中运行,但与powerpoint交互,这只是代码的一部分。其他一切都很好(PPPres已经定义好了)。我还尝试了索引形状(即使它是幻灯片上唯一的一个)和使用for循环,但似乎仍然无法使其工作 With PPPres.Slides(5).Shapes If Shapes.Type = msoPicture Then .Delete End If End With *
With PPPres.Slides(5).Shapes
If Shapes.Type = msoPicture Then
.Delete
End If
End With
*错误-找不到方法或数据成员(在.Delete上)。我知道“.Delete”只在“with语句”中起作用,但我有它,所以我不知道是什么错了。话虽如此,我还是尝试了以下方法:
If PPPres.Slides(5).Shapes.Type = msoPicture Then
Shapes.Delete
End If
*错误-找不到方法或数据成员(在.Type上)。我知道“.Type”是存在的,所以我对问题所在感到困惑
谢谢你的帮助 我认为,在这种情况下,最好对每个循环使用。如果有帮助,请参见下文
For Each shp In PPPres.Slides(5).Shapes
If shp.Type = msoPicture Then
shp.Delete
End If
Next shp
“形状”返回对幻灯片的整个“形状”集合的引用。 如果您确定只有一个形状,请使用
With PPPres.Slides(5).Shapes(1)
If .Type = msoPicture Then
.Delete
End If
End With
谢谢你的帮助。我确信只有一种形状,但为了覆盖我的基底,我将使用第二种答案,使其更坚固。谢谢,这正是我所需要的!