【问题标题】:Word-macro to replace all instances of a particular string in current line用于替换当前行中特定字符串的所有实例的 Word 宏
【发布时间】:2013-06-16 03:41:22
【问题描述】:

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

(word1 or word2 or word3).ab,ti.

应该替换为

word1[TIAB] 或 word2[TIAB] 或 word3[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 完全陌生,所以我不知道该怎么做。有什么建议吗?

感谢您的帮助! 莱尼

【问题讨论】:

    标签: vba ms-word


    【解决方案1】:

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

    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
    

    请注意,我必须依靠 ASCII 代码 (Chr(40) & Chr(41)) 来解释括号,因为令人惊讶的是(至少对我而言),宏无法找到目标字符串。我做了一些测试,问题只发生在括号后跟另一个字符(?!)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-16
      • 1970-01-01
      • 2018-01-10
      • 2018-03-04
      • 1970-01-01
      • 2017-02-06
      • 2014-03-14
      • 1970-01-01
      相关资源
      最近更新 更多