Vba Word宏替换当前行中特定字符串的所有实例

Vba Word宏替换当前行中特定字符串的所有实例,vba,ms-word,Vba,Ms Word,我试图在word中创建一个宏来查找表中的特定单元格并替换其中的某些字符串。例如: (单词1或单词2或单词3)。ab,ti 应该由 字1[TIAB]或字2[TIAB]或字3[TIAB] 因此,到目前为止,我所做的是一个简单的replaceAll,删除最初的括号,并将后缀“.ab,ti.”替换为“[TIAB]。但这当然不会将结尾附加到word1和word2 Sub Makro6() ' ' Makro6 Makro ' ' Selection.Find.ClearFormatting

我试图在word中创建一个宏来查找表中的特定单元格并替换其中的某些字符串。例如:

(单词1或单词2或单词3)。ab,ti

应该由

字1[TIAB]或字2[TIAB]或字3[TIAB]

因此,到目前为止,我所做的是一个简单的replaceAll,删除最初的括号,并将后缀“.ab,ti.”替换为“[TIAB]。但这当然不会将结尾附加到word1和word2

    Sub Makro6()
'
' Makro6 Makro
'
'
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = ".ab,ti."
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchAllWordForms = False
        .MatchSoundsLike = False
        .MatchWildcards = True
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
End Sub
我想我需要的是在replaceAll子函数中嵌入一个循环,它从第一个位置运行到当前行的末尾,并用“[TIAB]或”替换字符串“或”。但是,我对VBA是完全陌生的,所以不知何故我不知道如何做。有什么建议吗

谢谢你的帮助!
Leni

此代码执行您想要的操作:

Sub Makro6()

  Dim maxCount, curCount As Integer

  maxCount = 3
  curCount = 0
  Do
    curCount = curCount + 1
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = Chr(40) & "word" & curCount & Chr(41) & ".ab,ti."
        .Replacement.Text = "word" & curCount & "[TIAB]"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchAllWordForms = False
        .MatchSoundsLike = False
        .MatchWildcards = False
        .Execute Replace:=wdReplaceAll
    End With
  Loop While (curCount < maxCount)

End Sub
Sub-Makro6()
Dim maxCount,CURCUNT为整数
最大计数=3
curCount=0
做
curCount=curCount+1
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
选择。查找
.Text=Chr(40)&“word”&curCount&Chr(41)&.ab,ti。”
.Replacement.Text=“word”&curCount&“[TIAB]”
.Forward=True
.Wrap=wdFindContinue
.Format=False
.MatchCase=False
.MatchWholeWord=False
.MatchAllWordForms=False
.MatchSoundsLike=False
.MatchWildcards=False
.Execute Replace:=wdReplaceAll
以
循环时间(curCount
请注意,我必须依靠ASCII码(Chr(40)和Chr(41))来解释括号,因为令人惊讶的是(至少对我来说),宏无法找到目标字符串。我做了一些测试,问题只发生在括号后面跟着另一个字符(?!)