这将从形状或文本框中删除文本,但不会从分组的文本框或形状中删除。
如何修改以下代码以满足我的需要?
我想要的是简单地删除字符串strf
和"(" & strf & ")"
出现在ppt中的任何位置。但这似乎忽略了分组对象。
For Each Sld In PP.Slides
For Each Shp In Sld.Shapes
With Shp
.TextFrame.TextRange.Text = Replace(.TextFrame.TextRange.Text, "(" & strf & ")", "")
.TextFrame.TextRange.Text = Replace(.TextFrame.TextRange.Text, strf, "")
Debug.Print Sld.Name, .Name, .TextFrame.TextRange.Text
End With
Next Shp
Next Sld
答案 0 :(得分:0)
由MrExcel MVP从here获得解决方案。
这循环遍历我想要的组中的每个子项。
For Each Sld In PP.Slides
For Each Shp In Sld.Shapes
With Shp
.TextFrame.TextRange.Text = Replace(.TextFrame.TextRange.Text, "(" & strf & ")", "")
.TextFrame.TextRange.Text = Replace(.TextFrame.TextRange.Text, strf, "")
Debug.Print Sld.Name, .Name, .TextFrame.TextRange.Text
End With
For Each Shp1 In Shp.GroupItems
With Shp1
.TextFrame.TextRange.Text = Replace(.TextFrame.TextRange.Text, "(" & strf & ")", "")
.TextFrame.TextRange.Text = Replace(.TextFrame.TextRange.Text, strf, "")
Debug.Print Sld.Name, .Name, .TextFrame.TextRange.Text
End With
Next
Next Shp
Next Sld