在下的就就问题如下:Private Sub Command1_click()
    Dim s As String, c As String, n As Integer, m As Integer
    s = Text1.Text
    c = Text2.Text
    n = InStr(s, c)
    '如果n=0,待查找的子字符串不存在,因而下一语句出现运行错误
     Text1.Text = Mid(s, 1, n - 1) + Text3.Text + Mid(s, n + Len(c))
    'mid(s,1,n-1)为原文本第1~n-1个字符组成的串
    '原文本第n~n+len(c)-1个字符组成的串,由text3.text替换
    'mid(s,n+len(c))为原文本第n+len(c)~最后的字符组成的串
    
    End Sub
问题是出现在: Text1.Text = Mid(s, 1, n - 1) + Text3.Text + Mid(s, n + Len(c))
但是我不知道是怎么错啦?请大家帮帮忙.谢谢!!!

解决方案 »

  1.   

    If n = 0 Then Exit Sub
      

  2.   

    Text1.Text = Mid(s, 1, n - 1) + Text3.Text + Mid(s, n + 1)
      

  3.   

    Private Sub Command1_click()
        Dim s As String, c As String, n As Integer, m As Integer
        s = Text1.Text
        c = Text2.Text
        n = InStr(s, c)
        '如果n=0,待查找的子字符串不存在,因而下一语句出现运行错误
         If n <= 0 Then Exit Sub
         Text1.Text = Mid(s, 1, n - 1) + Text3.Text + Mid(s, n + Len(c))
        'mid(s,1,n-1)为原文本第1~n-1个字符组成的串
        '原文本第n~n+len(c)-1个字符组成的串,由text3.text替换
        'mid(s,n+len(c))为原文本第n+len(c)~最后的字符组成的串
      

  4.   

    Sorry ,理解错意思了呵:)
    当没找到的时候n=0
    那么mid(s,1,n-1)这时n-1=-1,Mid最后一个参数是长度,长度不能为负数。
      

  5.   

    Private Sub Command1_Click()
        Dim a As String
        Dim b As String
        Dim d As Long
        a = Trim(Text1.Text)
        b = Trim(Text2.Text)
        d = 4 + Len(Text2.Text)
        Text3.Text = Mid(a, 1, 3) + Text2.Text + Mid(a, d)
    End Sub
      

  6.   

    Mid(s, 1, n - 1)    '当N 为0时,取长度为-1的字符串,不符合Mid的要求
      

  7.   

    ‘加多一条语句
    If n <= 0 Then
       Exit Sub
    End If
      

  8.   


     如果加上If n <= 0 Then
       Exit Sub
    End If  还不行的话,我建议你仔细再学习一下VB的基础把。
      

  9.   

    Private Sub Command1_click()
        Dim s As String, c As String, n As Integer, m As Integer
        s = Text1.Text
        c = Text2.Text
        n = InStr(s, c)    '在这个地方加上下面这句,如果n=0,则这段代码会出错<Mid(s, 1, n - 1)>。
        If n <= 0 Then
           Exit Sub
        End If    '如果n=0,待查找的子字符串不存在,因而下一语句出现运行错误
         Text1.Text = Mid(s, 1, n - 1) + Text3.Text + Mid(s, n + Len(c))
        'mid(s,1,n-1)为原文本第1~n-1个字符组成的串
        '原文本第n~n+len(c)-1个字符组成的串,由text3.text替换
        'mid(s,n+len(c))为原文本第n+len(c)~最后的字符组成的串
        
        End Sub
      

  10.   

    还有如果Text2.Text="",也就是c="",则这句Mid(s, n + Len(c))也会出错,这句话不知你有何用意,如果c不为空,Mid(s, n + Len(c))得出的结果等于s。没什么用。
      

  11.   

    Private Sub Command1_Click()
    Text1.Text = Replace(Text1.Text, TEXT2.Text, TEXT3.Text)
    End Sub