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
应该将代码怎么改?我什么我的有问题?
最后一句写错了,应该是 我的代码有什么问题? 展开
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
应该将代码怎么改?我什么我的有问题?
最后一句写错了,应该是 我的代码有什么问题? 展开
2个回答
展开全部
不用这么麻烦,直接用replace函数就行了,代码如下
Private Sub Command1_Click()
Dim s1, s2 As String
s1 = "123456456"
s2 = "45"
MsgBox Replace(s1, s2, "")
End Sub
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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询