VBA 替换“开始”属性删除文本

问题描述 投票:0回答:1

这是一个奇怪的事情。我正在尝试使用

Replace
函数替换第二次出现的值。这就是我拥有的。

Sub_string = Replace(sub_string, "<ul>", "", ulnestfound, 1, vbTextCompare)

我的想法是

Replace
函数将开始查看位置
ulnestfound
,并从该点替换第一次出现的
"<ul>"
。实际发生的情况是,
ulnestfound
之前的所有文本以及
<ul>
标签都被删除。因此,例如,如果
ulnestfound = 100
,则删除
sub_string
的前100个字符,然后进行替换。

有什么想法为什么会发生这种情况吗?这让我发疯。

我尝试手动输入起始值,这就是我意识到发生了什么的方式。我无法想象为什么它会删除这样的文本。

vba ms-access replace
1个回答
1
投票

替换功能的文档说:

返回一个字符串,该字符串是字符串表达式从起始位置(默认为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

© www.soinside.com 2019 - 2024. All rights reserved.