Str1 = "name;age;addr;;;wei;;;"
v = Mid(Str1, 1, InStr(Str1, ";;;") - 1)

解决方案 »

  1.   

    不好意思可能是我表达错误吧,因此你也搞错了,我的原意是
    我有一个字符串 str="name;age;addr;;;wei;;;"
    问题是 我要把第i(i是变量)个分号后面的所有字符给删掉,假如这个i=3 那结果是 str="name;age;addr"
    谢谢!!
      

  2.   

    请试一下:Dim str As String
    Dim iPos As Integer
    Dim iCut As Integer
    Dim iTmp As Integer
    str = "name;age;addr;;;wei;;;"
    Debug.Print str
    iPos = 0
    iTmp = Len(str)
    For iCut = 1 To iTmp
        If InStr(iCut, str, ";", vbTextCompare) Then
            iCut = InStr(iCut, str, ";", vbTextCompare)
            iPos = iPos + 1
        End If
        If iPos = 3 Then
            str = Left(str, iCut - 1)
            Exit For
        End If
    Next
    Debug.Print str应该比较通用,不管你的str怎样变动,呵呵
      

  3.   

    for i=0 to len(str1)
       a=mid(str1,i,1)
       if a=";" then
           b=b+1
          if b="所要求的位置" then
             h=i
           exit for
          end if 
        end if 
    next 
      c=mid(str1,1,i)
    说明:变量c的值就是所要求的字符串
      

  4.   

    太容易了
    Function GetFlagStr(str1 As String) As String
    Dim nPos As Integer
    Dim nLen As Integer
    Dim temp As String
    temp = str1
    For i = 0 To 2
    nPos = InStr(1, str1, ";")
    nLen = Len(str1)
    str1 = Right(str1, nLen - nPos)
    Next
    temp = Left(temp, Len(temp) - Len(str1) - 1)
    GetFlagStr = tempEnd Function
      

  5.   

    a = "aa;bb;cc;dd;ee;ff"
    i = 3
    b = 1
    For j = 1 To i    b = InStr(b + 1, a, ";", vbTextCompare)
    Next
    c = Left(a, b - 1)
    Debug.Print c
      

  6.   

    dim str1 as string     
    dim a as string
    dim b as integer
    dim c as string
    dim h as integer
    h=inputbox("输入位置信息:","提示信息") 
    str1="sdf;skjf;;;;wryeu;"
    for i=0 to len(str1)
      a=mid(str1,i,1)
      if a=";" then
          b=b+1
          if b=h then
            h=i
          exit for
          end if 
        end if 
    next 
      c=mid(str1,1,i)
    说明:变量c的值就是所要求的字符串
      

  7.   

    Str1 = "name;age;addr;;;wei;;;"
    v = Left(Str1, 1,  ";;;")
      

  8.   

    如果是要删除第n个分号后的内容,可改为:
    Function GetFlagStr(str1 As String,n as integer) As String
    Dim nPos As Integer
    Dim nLen As Integer
    Dim temp As String
     temp = str1
     For i = 0 To n
        nPos = InStr(1, str1, ";")
        nLen = Len(str1)
        str1 = Right(str1, nLen - nPos)
     Next
     temp = Left(temp, Len(temp) - Len(str1) - 1)
     GetFlagStr = tempEnd Function