vba word 如何改变整个文档所有指定文字的 颜色如图

图片说明

之所以慢,应该是你反复读写属性造成的,应该把range放在变量里面操作,操作完毕一次性写回

也是vba写的,现在也在用着,批量处理,给你参考参考,如果可以,请采纳哈!

Private Sub 文档内容_Click()
Application.ScreenUpdating = False '关闭屏幕闪
Dim myFile$, myPath$, i%, myDoc As Object, myAPP As Object, txt$, Re_txt$
Set myAPP = New Word.Application
With Application.FileDialog(msoFileDialogFolderPicker) '允许用户选择一个文件夹
.Title = "选择目标文件夹"
If .Show = -1 Then
myPath = .SelectedItems(1) '读取选择的文件路径
Else
Exit Sub
End If
End With
myPath = myPath & ""
myFile = Dir(myPath & "*.doc")
txt = InputBox("需要替换的文字:")
Re_txt = InputBox("替换成:")
myAPP.Visible = True '是否显示打开文档
Do While myFile <> "" '文件不为空
Set myDoc = myAPP.Documents.Open(myPath & "\" & myFile)
If myDoc.ProtectionType = wdNoProtection Then '是否受保护
With myDoc.Content.Find
.Text = txt
.Replacement.Text = Re_txt
.Forward = True
.Wrap = 2
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
.Execute Replace:=2
End With
End If
myDoc.Save
myDoc.Close
myFile = Dir
Loop
myAPP.Quit '关掉临时进程
Application.ScreenUpdating = True
MsgBox ("全部替换完毕!")
End Sub

WordVBA:替换(比自己写遍历要快得多,一般能用替换就用)

代码

Sub 通配符查找_替换颜色()
    Dim aDoc As Document
    Set aDoc = ActiveDocument
    With aDoc.Content.Find
        .ClearFormatting
        .Wrap = wdFindStop
        .Forward = True
        .MatchWildcards = True
        .Text = "不可能"
        With .Replacement
            .ClearFormatting
            .Text = "^&"
            .Font.ColorIndex = wdRed    '满足条件的字符串变为红色
        End With
        .Execute Replace:=wdReplaceAll
    End With
    Set aDoc = Nothing
End Sub