你好,请教ppt vba高手,我想在ppt中批量替换选定的值(比如吧“;”替换成“;”)

我的代码是,但是每次只能替换一部分,需要点好几下才看上上去都换成想要的“;”
Private Sub CommandButton1_Click()
Dim s As Slide
Dim shp As Shape
Dim oTxtRng As TextRange
Dim oTmpRng As TextRange '查找foundtext
Dim i As Integer

' /* 遍历活动窗口中打开的演示文稿中的幻灯片. */
For Each s In ActivePresentation.Slides
' /* 遍历当前幻灯片中的形状对象. */
For Each shp In s.Shapes
' /* 当前幻灯片中的当前形状含有文本框架. */
If shp.HasTextFrame Then
' /* 当前幻灯片中的当前形状包含文本. */
If shp.TextFrame.HasText Then
' 引用文本框架中的文本.
Set oTxtRng = shp.TextFrame.TextRange

Set oTmpRng = oTxtRng.Replace(FindWhat:=";", _
Replacewhat:=";", WholeWords:=True)
Do While Not oTmpRng Is Nothing
Set oTxtRng = oTxtRng.Characters(oTmpRng.Start + oTmpRng.Length, oTxtRng.Length)
Set oTmpRng = oTxtRng.Replace(FindWhat:=";", Replacewhat:=";", WholeWords:=True)
Loop

End If
End If
Next
Next
End Sub
没有大牛看见啊

VBA Code:

Private Sub CommandButton1_Click()
    Dim s As Slide
    Dim shp As Shape
    Dim oTxtRng As TextRange
    Dim oTmpRng As TextRange
    
    ' /* éåŽ†æ´»åŠ¨çª—口中打开的演示文稿中的幻灯片. */
    For Each s In ActivePresentation.Slides
        ' /* éåŽ†å½“前幻灯片中的形状对象. */
        For Each shp In s.Shapes
            ' /* å½“前幻灯片中的当前形状含有文本框架. */
            If shp.HasTextFrame Then
                ' /* å½“前幻灯片中的当前形状包含文本. */
                If shp.TextFrame.HasText Then
                    ' å¼•ç”¨æ–‡æœ¬æ¡†æž¶ä¸­çš„文本.
                    Set oTxtRng = shp.TextFrame.TextRange
                    Set oTmpRng = oTxtRng.Replace(";", ";", WholeWords:=msoTrue)
                    
                    Do While Not oTmpRng Is Nothing
                        Set oTmpRng = oTxtRng.Replace(";", ";", WholeWords:=msoTrue)
                    Loop
                End If
            End If
        Next
    Next
End Sub


运行效果:

来自:求助得到的回答
温馨提示:内容为网友见解,仅供参考
无其他回答

ppt如何批量修改内容ppt如何批量修改内容文字
1. 使用“查找和替换”功能:在PPT中按下Ctrl + F,打开“查找和替换”对话框。在“查找内容”中输入要替换的文字或内容,然后在“替换为”中输入新的文字或内容。点击“全部替换”按钮,PPT将会批量替换所有匹配的内容。2. 使用宏:如果你熟悉VBA编程,可以编写一个宏来批量修改PPT内容。在开发工具...

VBA批量替换PPT内容,包括文本框和表格!求大佬帮忙
Sub 宏1() Dim i, ctrl '下一行是查找和替换的内容,依次成对填写 ctrl = Array("A", "1", "B", "2", "C", "3") For i = LBound(ctrl) To UBound(ctrl) - 1 Step 2 Cells.Replace What:=ctrl(i), Replacement:=ctrl(i + 1), LookAt:=xlPart, MatchCase...

请编一个在Powerpoint上运行的宏命令(VBA)代码,解决批量替换或删除多个...
ReplaceString = InputBox("请输入替换文本:", "参数输入(3\/3)")If Path = "" Or FindString = "" Or ReplaceString = "" Then MsgBox "每个参数均不能为空!", vbCritical, "出错"Exit Sub End If ChangedCount = 0 FindCount = 0 Mask = "*.ppt"If Right(Path, 1) <> "\\" ...

ppt中的vba宏介绍,越详细越好
ReplaceString = InputBox("请输入替换文本:", "参数输入(3\/3)")If Path = "" Or FindString = "" Or ReplaceString = "" Then MsgBox "每个参数均不能为空!", vbCritical, "出错"Exit Sub End If ChangedCount = 0 FindCount = 0 Mask = "*.ppt"If Right(Path, 1) <> "\\" ...

PPT批量修改幻灯片字体大小颜色的方法
只需要将以下VBA代码中红色字体,替换成需要更改的字体参数,然后将修改完成的VBA代码放入VBA编辑器中运行即可!只适合PPT2007及其以上版本!Sub change()Dim oShape As Shape Dim oSlide As Slide Dim oTxtRange As TextRange On Error Resume Next For Each oSlide In ActivePresentation.Slides For ...

怎么批量修改ppt中标点符号的字体,而中文字体不变。
CTRL + H ,然后把要修改的 替换就可以。

如何用vba批量修改ppt中组合图形的字体格式
oSh In oSl.Shapes With oSh If .HasTextFrame Then If .TextFrame.HasText Then If .TextFrame.TextRange.Font.Name = sFontName Then right_info_ppt = right_info_ppt + "所有字体都改为微软雅黑得分:1分"+ Chr(10)pptzf = pptzf + 1 End If End If End If End With Next Next ...

如何在PPT中利用VBA程序设置某页上的表格文本框边距,并去除某个单元格...
以下代码演示了如何通过 PowerPoint VBA 替换第一个幻灯片中的指定单元格(这里固定第二行第一列)中的所有 “Overall”:Sub 替换Overall() Dim tb As Table Dim sld As Slide Dim shp As Shape Dim txtRange As TextRange Const FIND_WHAT As String = "Overall" Set sld =...

在Ms office PPT2013中,用VBA实现点击图形按钮显示对应内容,且可以点 ...
首先,打开 PowerPoint 2013,并按下 ALT + F11 组合键打开 VBA 编辑器。在左侧的项目资源管理器窗口中,双击 "ThisPresentation" 以打开该演示文稿的代码窗口。在代码窗口中,输入以下代码:Option Explicit Private Sub Shape_Click()Dim clickedShape As Shape Set clickedShape = ActiveWindow.Selection...

关于PPT中VBA的问题~高手进
哦,你可以试试重新启动机器,或者重新安装一个ppt,这样在来截图并移动左上角的放个。就可以成为效果好的,再用过滤器过滤一下,过滤器是一个硬盘。下一个他有设置,你就手动代理,应该就可以了。

相似回答