许霆案二审判决结果:关于VB编辑替换文本字符的问题

来源:百度文库 编辑:中科新闻网 时间:2024/04/29 08:42:11
比如有这么个文本“G J A L A A Y U A O P A E....”文本中A是规律出现的,每隔两个字符出现一次,其中第2次出现“A A”第一个A不计入编辑内容,内容已经显示在RichTextBox中,我打算点一下按钮,把文本中规律的A都替换成SSS,于是代码如下:

定义 strIP IP 为 String,varValues 为 Variant,i,j为Integer

strIP = RichTextBox.Text

varValues = Split(strIP, " ")

For j = LBound(varValues) To UBound(varValues)
text1 = j ........想看看多少个字符加入的
Next

i = 3

Do While i < j

IP = varValues(i)

If IP = "A" Then

RichTextBox.Text = Replace(RichTextBox.Text, IP, "SSS", 1, 1, i)

Else

RichTextBox.Text = Replace(RichTextBox.Text, IP, "错误", 1, 1, i)

End If

i = i + 3

Loop

每次执行总是循环转换6次后报错“无效的过程或调用参数”指的是这一行“RichTextBox.Text = Replace(RichTextBox.Text, IP, "SSS", 1, 1, i)”

实在不明白,请大家指教指教,循环有问题么?我想让3、6、9、12...位置的A转换成SSS,而第5个位置的A不被转换,直到把整个文本全转换完为止,应该怎么做呢??谢谢大家。。

老兄,你Replace的参数写错了,最后一个是比较方式,写i,循环转换6次后i变的太大而不能被接收,所以就报错了。这样改:
strIP = RichTextBox.Text
varValues = Split(strIP, " ")

For j = LBound(varValues) To UBound(varValues)
Text1 = j '........想看看多少个字符加入的
Next

i = 2
Do While i < j
IP = varValues(i)
If IP = "A" Then
varValues(i) = "SSS"
Else
varValues(i) = "错误"
End If
i = i + 3
Loop
RichTextBox.Text = Join(varValues, " ")