VB无效的过程调用或参数

FunctionDeleStr(s1,s2)Dimi%,j%Fort=1To10i=InStr(s1,s2)j=Len(s2)a=Left(s1,i-1)b=Mid(s1... Function DeleStr(s1, s2)
Dim i%, j%
For t = 1 To 10
i = InStr(s1, s2)
j = Len(s2)
a = Left(s1, i - 1)
b = Mid(s1, i - 1 + j)
s1 = a & b
Next t
DeleStr = s1
End Function

Private Sub Command1_Click()
m = Text1
n = Text2
k = DeleStr(m, n)
Print k
End Sub

我想写的代码是在S1字符串中删除出现的s2字符串,如果出现多次s2字符串则都删除
例如s1::123456456
s2:45
则删除之后的是:12366
应该将代码怎么改?我什么我的有问题?
最后一句写错了,应该是 我的代码有什么问题?
展开
 我来答
xixiaohui002
2012-05-22 · TA获得超过1238个赞
知道小有建树答主
回答量:673
采纳率:50%
帮助的人:642万
展开全部
不用这么麻烦,直接用replace函数就行了,代码如下

Private Sub Command1_Click()
Dim s1, s2 As String

s1 = "123456456"
s2 = "45"

MsgBox Replace(s1, s2, "")
End Sub
追问
可是老师要求用这个方法的,要怎么改呢?
追答
两个地方要改:
第一个是文本框的取值要加.text
第二个是instr的结果判断,如果找不到对应的字符串,那么就不要截取了,否则会导致left参数无效

Function DeleStr(s1, s2)
Dim i%, j%
For t = 1 To 10
i = InStr(s1, s2)
If i > 0 Then
j = Len(s2)
a = Left(s1, i - 1)
b = Mid(s1, i - 1 + j)
s1 = a & b
End If
Next t
DeleStr = s1
End Function

Private Sub Command1_Click()
m = Text1.Text
n = Text2.Text
k = DeleStr(m, n)
Print k
End Sub
阿KingGz
2012-05-22 · TA获得超过134个赞
知道小有建树答主
回答量:180
采纳率:0%
帮助的人:99.3万
展开全部
直接用函数:Replace(S1,s2)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式