VBA中的REPLACE函数的问题

来源:互联网 发布:简述什么是javascript 编辑:程序博客网 时间:2024/06/05 05:57

今天见到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的帮助文件,也许你的问题在帮助文件里就已经有解答了。

原创粉丝点击