今天见到EH一位会员问一个REPLACE函数的问题,原文如下:
代码:
Sub Macro2()
s = "---"
s = Replace(s, "-", "=", 2, 1)
Debug.Print s
End Sub
立即窗口中显示的是"=-"而不是"-=-"
为什么会少一个字符啊?
这确实是一个有趣的问题,因为工作表函数中的REPLACE函数的原理是把给出的查找项替换成另一个值,其他的字符不会发生改变,就如CTRL+H的替换功能类似。
而VBA中的REPLACE函数的,微软的帮助的最后有一句:
Replace函数的返回值是一个字符串,但是,其中从start所指定的位置开始,到expression字符串的结尾处的一段子字符串已经发生过替换动作。并不是原字符串从头到尾的一个复制。
也就是说,VBA中的REPLACE函数会把start位置前的字符统统舍去,只保留start位置后的被替换后的字符串。
帮助文件确实是非常有用的,希望大家在问问题前,先看一下EXCEL的帮助文件,也许你的问题在帮助文件里就已经有解答了。