从文本框,形状等中删除可能被分组的字符串

时间:2016-04-20 13:33:05

标签: excel vba excel-vba textbox powerpoint

这将从形状或文本框中删除文本,但不会从分组的文本框或形状中删除。

如何修改以下代码以满足我的需要?

我想要的是简单地删除字符串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

1 个答案:

答案 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