回 帖 发 新 帖 刷新版面

主题:为什么执行后无结果?

编写一个sub过程,将字符串s1中出现的子符串s2删除,结果仍保存在s1中。可是按书上的写出来,为什么执行后没有结果?是哪里不问题了?
Option Explicit
Private Sub delestr(s1 As String, ByVal s2 As String)
Dim position As Integer, s1length As Integer, s2length As Integer
position = InStr(s1, s2)
s2length = Len(s2)
Do While position > 0
   s1length = Len(s1)
   s1 = Left(s1, position - 1) & Right(s1, s1length - (position + s2length) + 1)
   position = InStr(s1, s2)
Loop
End Sub
Private Sub command_click()
Dim s1 As String
s1 = Text1.Text

Call delestr(s1, Text2.Text)
Text3.Text = s1
End Sub

回复列表 (共4个回复)

沙发

检查你的按纽名称是不是command
另外,有一句可改为:
s1 = Left(s1, position - 1) & Mid(s1, position + s2length)

板凳

楼主,
“编写一个sub过程,将字符串s1中出现的子符串s2删除”
似乎不用这么麻烦?

Private Sub 删除子字符串(主字符串 As String, 子字符串 As String)
    主字符串 = Replace(主字符串, 子字符串, "")
End Sub

3 楼

有些问题的解决并不像想象中那么困难。

4 楼

谢谢各位朋友了!

我来回复

您尚未登录,请登录后再回复。点此登录或注册