【问题标题】:MS Office wildcards - how do I handle 0 or 1 occurrences of a character?MS Office 通配符 - 如何处理 0 或 1 次出现的字符?
【发布时间】:2022-11-04 09:36:49
【问题描述】:

我正在使用 VBA 对 Word 文档进行查找和替换。我遇到的问题是通配符不支持字符的“0 或 1 次出现”。该文档具有 |tag| 形式的标签。和 |结束标签|。根据具体的项目,标签之间的内容要么被保留,要么被删除。但是,如果存在,我还希望查找/替换删除 |Endtag| 末尾的换行符。通配符表达式"|" & tagname & "|*|End" & tagname & "|" & vbCr 不起作用,因为它明确要求末尾有一个换行符。

有干净的替代品吗?

【问题讨论】:

    标签: vba ms-word wildcard


    【解决方案1】:

    尝试:

    "|" & tagname & "|*|End" & tagname & "[|^13]{1,}"
    

    【讨论】:

    • 对,所以(管道或新线路)一次或多次?有道理,谢谢
    【解决方案2】:

    经过一些实验,我找到了更好的方法:

    'find text without considering newline
    Do While Selection.Find.Execute(FindText:=x)
        'if next character after selection is newline:
        If Selection.Next(unit:=wdCharacter) = Chr(13) Then
            'expand selection by one character
            Selection.MoveEnd unit:=wdCharacter, count:=1
        End If
        ran.Delete
    Loop
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-29
      • 2018-09-25
      • 2020-05-06
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      • 2011-10-25
      相关资源
      最近更新 更多