代码:
SubMacro2()
???s="---"
???s=Replace(s,"-","=",2,1)
???Debug.Prints
EndSub
立即窗口中显示的是"=-"而不是"-=-"
为什么会少一个字符啊?因为工作表函数中的REPLACE函数的原理是把给出的查找项替换成另一个值,其他的字符不会发生改变,就如CTRL+H的替换功能类似。
而VBA中的REPLACE函数的,微软的帮助的最后有一句:
Replace函数的返回值是一个字符串,但是,其中从start所指定的位置开始,到expression字符串的结尾处的一段子字符串已经发生过替换动作。并不是原字符串从头到尾的一个复制。
也就是说,VBA中的REPLACE函数会把start位置前的字符统统舍去,只保留start位置后的被替换后的字符串。