Word 2010 VBA-嵌套Do直到。。。循环进行搜索和替换

Word 2010 VBA-嵌套Do直到。。。循环进行搜索和替换,vba,search,replace,ms-word,Vba,Search,Replace,Ms Word,我正在尝试创建嵌套Do,直到。。。循环,将在Word文档中执行15种不同的搜索和替换。我需要完成以下工作(末尾的分号仅用于列出): 我已经录制了宏,并希望对其进行编辑,以替换大量的宏 Selection.Find.Execute Replace:=wdReplaceAll 在宏中每次搜索/替换都会发生这种情况,直到结果为0个实例。我知道该怎么做直到。。。循环将使该宏更有效。请帮忙 至少应该从以下几方面着手: Dim searches() As String Dim replaces() As S

我正在尝试创建嵌套Do,直到。。。循环,将在Word文档中执行15种不同的搜索和替换。我需要完成以下工作(末尾的分号仅用于列出):

我已经录制了宏,并希望对其进行编辑,以替换大量的宏 Selection.Find.Execute Replace:=wdReplaceAll
在宏中每次搜索/替换都会发生这种情况,直到结果为0个实例。我知道该怎么做直到。。。循环将使该宏更有效。请帮忙

至少应该从以下几方面着手:

Dim searches() As String
Dim replaces() As String

searches = Split("( , %", ",")
replaces = Split("(,%", ",")

Dim i As Integer
For i = LBound(searches) To UBound(searches)
    With Selection.Find
        Do
            .ClearFormatting
            .Text = searches(i)
            .Replacement.Text = replaces(i)
            .Execute Replace:=wdReplaceAll
        Loop While .Found
    End With
Next i

搜索字符串和替换字符串是逗号分隔的,并且必须具有相同数量的元素-为了清晰起见,只包含了两个元素(如果vbTab和vbCr在所有地方都连接在一起,这会很难看)。

那么您想循环所有Word文档并执行查找和替换吗?文件都打开了吗?或者存储在文件夹中?我会一次在一个Word文档上使用宏-从网站下载,需要在Word 2010中转换和清理。这些文档可以有数百页(包括财务表,因此在转换后所有额外的选项卡),这些搜索/替换是广泛重新格式化的一部分。因此,我需要遍历一个文档并捕获每个搜索/替换项的所有实例。谢谢谢谢你的回复。我要测试一下。若要添加其他搜索和替换字符串,我是否可以将所有15个字符串都放在用引号和逗号分隔的=拆分行中?@Luuti-Yes。我把它写得很短,所以它比类似这样的东西更清晰:
searches=Split(“&vbTab&“,”&“&vbCr&“,%,”,”)
Dim searches() As String
Dim replaces() As String

searches = Split("( , %", ",")
replaces = Split("(,%", ",")

Dim i As Integer
For i = LBound(searches) To UBound(searches)
    With Selection.Find
        Do
            .ClearFormatting
            .Text = searches(i)
            .Replacement.Text = replaces(i)
            .Execute Replace:=wdReplaceAll
        Loop While .Found
    End With
Next i