【问题标题】:Why Doesn't This VBA Code Replace Special Characters?为什么此 VBA 代码不替换特殊字符?
【发布时间】:2011-08-27 07:56:35
【问题描述】:

我发现这个宏可以在 Microsoft Word 2010 中一次替换多个字符串。

我遇到了特殊字符的问题。我录制了一个宏并手动替换了字符,这样我就可以看到应该如何在 VBA 代码中编写特殊字符。

当我尝试将它们全部放在一个字符串中时,就像它们被忽略了一样。

如何替换包括特殊字符在内的所有内容?

ChrW(728) 是˘

ChrW(711) 是ˇ

Sub MultiReplace()
Dim StrOld As String, StrNew As String
Dim RngFind As Range, RngTxt As Range, i As Long
StrOld = "ChrW(728),ChrW(711),H"
StrNew = ".,Þ,¼"
Set RngTxt = Selection.Range
For i = 0 To UBound(Split(StrOld, ","))
  Set RngFind = RngTxt.Duplicate
  With RngFind.Find
    .ClearFormatting
    .Replacement.ClearFormatting
    .Text = Split(StrOld, ",")(i)
    .Replacement.Text = Split(StrNew, ",")(i)
    .Format = False
    .MatchCase = True
    .MatchWholeWord = False
    .MatchAllWordForms = False
    .MatchWildcards = False
    .Execute Replace:=wdReplaceAll
  End With
Next
End Sub

【问题讨论】:

    标签: vba ms-word


    【解决方案1】:

    我想通了。替换这一行:

    StrOld = "ChrW(728),ChrW(711),H"
    

    StrOld = "" & ChrW(728) & "," & ChrW(711) & ",H"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-16
      • 1970-01-01
      • 1970-01-01
      • 2022-11-21
      • 1970-01-01
      • 2011-04-22
      • 1970-01-01
      相关资源
      最近更新 更多