replacestringvariables(VBA)中的多个字符

我怎样才能replacestringvariables中的多个事物?

在这里我的示例函数在VB中:

Private Function ExampleFunc(ByVal unitNr$) As String If InStr(unitNr, "OE") > 0 Then unitNr = Replace(unitNr, "OE", "") unitNr = Replace(unitNr, ";", "") End If ... End Function 

有更好的解决scheme吗?

你可以使用一个数组并循环其元素:

 Sub MAIN() Dim s As String s = "123456qwerty" junk = Array("q", "w", "e", "r", "t", "y") For Each a In junk s = Replace(s, a, "") Next a MsgBox s End Sub 

垃圾的每个元素可以是子string,也可以是单个字符。

它需要成为VBA吗? 这个公式也应该工作:

 =SUBSTITUTE(SUBSTITUTE("replace","e",""),"a","") 

输出将是'rplc'

我发现这个post相当有帮助,所以我想我会分享我是如何能够使用它对我有利的。 结合“加里的学生”接受的答案和查尔斯·威廉姆斯的 这个评论 ,我想出了一个简单的方法来删除任何给定string中的非数字字符。

 Public Function RemoveNonNumChars(s As String) As String Dim bytes() As Byte Dim char As String bytes = StrConv(s, vbFromUnicode) For Each c In bytes char = chr(c) If Not IsNumeric(char) Then 'remove character from array s = Replace(s, char, "") Debug.Print "Removing " & char & " from string." & Chr(13) s End If Next c End Function 

我希望这可以帮助别人。 干杯!