乔山办公网我们一直在努力
您的位置:乔山办公网 > word文档 > 如何用VBA实现WORD批量替换?-word宏批量替换,word用宏完成自动替换

如何用VBA实现WORD批量替换?-word宏批量替换,word用宏完成自动替换

作者:乔山办公网日期:

返回目录:word文档


Sub QY()
'
' 宏在 2014-4-24 由 QY
'
x = "3.1.1-51"
y = "3.1.1-50"

Selection.Find.ClearFormatting
For i = 1 To 50
With Selection.Find
.text = x
.Replacement.text = y
.Forward = True
End With
Selection.Find.Execute Replace:=wdReplaceOne
Selection.MoveRight Unit:=wdCharacter, Count:=1
y = x
x = "3.1.1-" & Val(Right(x, 2)) + 1
Next
End Sub

     For i = 1 To n 'n是listview1的行数
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = ListView1.ListItems(i).SubItems(0) 'Findstr=listview1的第i行第1列对e799bee5baa6e997aee7ad94e78988e69d83332应单元格的内容
        .Replacement.Text = ListView1.ListItems(i).SubItems(1) 'Findstr=listview1的第i行第2列对应单元格的内容
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchByte = True
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
     ListView1.selectedItem = i
    Next
    MsgBox "处理完毕!", vbInformation + vbOKOnly, "消息"
    ListView1.selectedItem = 1

要想自动化地一次过,采用VBA编程方式可以实现,编程思路是:

参考如下e799bee5baa6e79fa5e98193e78988e69d83364,你可以新建一个宏,将下列代码粘贴入该宏中,运行之后就可以圆满地实现你的目的了。设置了三个变量数组和一个循环变量,修改它们,可以实现其他目的。

代码如下:
=============================
Dim OriginalArr(1 To 4) As String '待查找的内容的数组,根据需要查找内容的数量,将4改变成相应的量即可
Dim ReplaceArr(1 To 4) As String '替换成的内容的数组,根据需要替换内容的数量,将4改变成相应的量即可
Dim TempString(1 To 4) As String '中间变量数组,根据需要替换内容的数量,将4改变成相应的量即可
Dim i As Integer
OriginalArr(1) = "张三" '内容可以根据需要自设置,其余同
OriginalArr(2) = "李四"
OriginalArr(3) = "王五"
OriginalArr(4) = "何六"
ReplaceArr(1) = "李四"
ReplaceArr(2) = "张三"
ReplaceArr(3) = "何六"
ReplaceArr(4) = "王五"
TempString(1) = "temp1"
TempString(2) = "temp2"
TempString(3) = "temp3"
TempString(4) = "temp4"
For i = 1 To 4 '根据数组OriginalArr的个数设置这里的循环变量的最大值
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = OriginalArr(i)
.Replacement.Text = TempString(i)
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Next i

For i = 1 To 4
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = TempString(i)
.Replacement.Text = ReplaceArr(i)
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Next i

============

录制宏,替换所有的1都替换为key“1”,然后在代码里面复制(所有的1都替换为key“1”)修改为其他替换。

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网