它很脏,但这是我用来解决此问题的解决方法。我知道我的问题字符总是在 之后"â€"
,所以我的想法是替换那些 2 之后的字符。我真的不知道如何替换字符串中某个位置的字符,所以我的想法是隐藏字符串到一个字符数组并替换那些特定索引处的数组。这是它的样子:
Do While InStr(s, "â€") > 1
num2 = InStr(s, "â€")
arr = stringToArray(s)
arr(num2 - 1) = "<~>"
arr(num2) = "<~>"
arr(num2 + 1) = "<~>"
s = Replace(arrayToString(arr), "<~><~><~>", "...")
Loop
...
Function stringToArray(ByVal my_string As String) As Variant
Dim buff() As String
ReDim buff(Len(my_string) - 1)
For i = 1 To Len(my_string)
buff(i - 1) = Mid$(my_string, i, 1)
Next
stringToArray = buff
End Function
Function arrayToString(ByVal arr As Variant) As String
Dim s As String
For Each j In arr
s = s & j
Next j
arrayToString = s
End Function
在实践中,我用那些必须是独特但可识别的东西来替换这些索引。然后我可以用我想要的任何东西替换我独特的字符。肯定会有边缘情况,但现在它可以完成工作。stringToArray 函数来自:将字符串拆分为字符数组?