搜索并替换vba中的所有特殊字符

搜索并替换vba中的所有特殊字符,vba,ms-word,Vba,Ms Word,我是vba新手,我的目标是将特殊字符(如:)替换为逗号e.t.c。如何编写代码,如果我遵循以下代码,我的代码将变得非常长。有没有别的办法 Dim comma As Range For Each comma In ActiveDocument.StoryRanges With comma.Find .Text = "," .Replacement.Text = "#@KE_COMMA@#" .Wrap = wdFindContinue .Ex

我是vba新手,我的目标是将特殊字符(如:)替换为逗号e.t.c。如何编写代码,如果我遵循以下代码,我的代码将变得非常长。有没有别的办法

Dim comma As Range
For Each comma In ActiveDocument.StoryRanges
    With comma.Find
      .Text = ","
      .Replacement.Text = "#@KE_COMMA@#"
      .Wrap = wdFindContinue
      .Execute Replace:=wdReplaceAll
    End With
  Next comma

当我想替换Excel中的某些内容时,这就是我所使用的。您可以稍微更改它,因此它在Word中也可以工作

Public Sub remove_space_in_string()

Dim r_range As Range

For Each r_range In Selection
    r_range = Trim(r_range)
    r_range = Replace(r_range, vbTab, "")
    r_range = Replace(r_range, " ", "")
    r_range = Replace(r_range, Chr(160), "")
Next r_range

End Sub

我建议将所有特殊字符和replacemnt值存储在数组中,并像您这样遍历所有范围

Dim comma As Range
For i=0 to Ubound(arraySpCahr)-1
For Each comma In ActiveDocument.StoryRanges
With comma.Find
  .Text = arraySpCahr(i) ' arraySpCahr(0)="," (1)="-"...etc
  .Replacement.Text = "#@KE_COMMA@#"
  .Wrap = wdFindContinue
  .Execute Replace:=wdReplaceAll
End With
Next comma
Next i
使用此代码

Sub shalu()
s = sss(",", "Repace_Comma")
s = sss(".", "Replace_dot")
s = sss("-", "replace_hyphen")
End Sub

Public Function sss(A As String, B As String) As String

Dim myword As Range

 For Each myword In ActiveDocument.StoryRanges
    With myword.Find
      .Text = A
      .Replacement.Text = B
      .Wrap = wdFindContinue
      .Execute replace:=wdReplaceAll
    End With
  Next myword
End Function

如果我替换“,”或“-”,替换字符串总是相同的,我需要的输出是,如果我替换逗号,它应该是#@KE#u comma@#,如果我替换连字符,它应该是#@KE#u HYPYEN@#,这是可能的吗?然后有二维arry,这样数组coloum1有你的字符,coloumn2有你的替换文本。如果您觉得有点复杂,请使用另一个arry2来存储replacement arry。您的意思是dim comma()comma=range(“,::@KE#u comma@#”)是否正确?您能告诉我这个代码r_range=Replace(r_range,Chr(160),“”)和r_range=Replace(r#range,vbTab,“”)吗,删除所选范围内任何类型的空白。因此,它捕获了“”、制表符和Chr(160)。您所说的特殊字符是什么意思,您是否考虑了集合、特定标点符号等?