这是一个奇怪的事情。我正在尝试使用
Replace
函数替换第二次出现的值。这就是我拥有的。
Sub_string = Replace(sub_string, "<ul>", "", ulnestfound, 1, vbTextCompare)
我的想法是
Replace
函数将开始查看位置 ulnestfound
,并从该点替换第一次出现的 "<ul>"
。实际发生的情况是,ulnestfound
之前的所有文本以及<ul>
标签都被删除。因此,例如,如果ulnestfound = 100
,则删除sub_string
的前100个字符,然后进行替换。
有什么想法为什么会发生这种情况吗?这让我发疯。
我尝试手动输入起始值,这就是我意识到发生了什么的方式。我无法想象为什么它会删除这样的文本。
替换功能的文档说:
返回一个字符串,该字符串是字符串表达式从起始位置(默认为1)开始的子字符串,其中指定的子字符串已被另一个子字符串替换指定的次数。这与观察到的行为相符。
Replace(expression, find, replace, [ start, [ count, [ compare ]]])
您省略了 count
参数。要么写
Sub_string = Replace(sub_string, "<ul>", "", ulnestfound, 1,, vbTextCompare)
或
Sub_string = Replace(sub_string, "<ul>", "", ulnestfound, 1, Compare:=vbTextCompare)
否则 vbTextCompare
(=1) 将被视为
count
。