dim i as integer,j as integer
i=1
do while mid(sData,i,1)<>"#" 
 i=i+1
loop
j=i
do while mid(sData,j,1)<>" " 
 j=j+1
loop
str1=mid(sData,i,j-i-1)
str2=mid(sData,j,len(Sdata)-j)
其中,str1和str2分别就是你要的两个子字段。

解决方案 »

  1.   

    sData="werouaslduer#uweor ljaaiuwerllll;uqer"。
    i=instr(sData,"#")+1
    t=instr(sData," ")-i
    sData=mid(sData,i,t)
      

  2.   

    拜托如果有3个空个怎么办?
    "weriuo laiuwe #werou liwuer"
      

  3.   

    dim lngPos as long 
    dim strValue as string
    dim strChildString as stringstrValue="fdsfs#fsfjnklnvkln"lngPos=instr(1,strValue,"#")
    if lngPos>0 then
        strChildString=mid(strValue,lngPos+1)
    else
        strChildString=""
    end if
    'strChildString 就是想要得到的子串
      

  4.   

    最简单,笨的思路:
    先找出特殊字符的位置,然后用mid()函数取出子串不就可以了
      

  5.   

    知道mid(),left()之类的函数就不该问这种问题
      

  6.   

    给个实例函数,获得两个标志符之间的字符串。
    要达到具体标志之间的字符串,请类推。Dim rs() As StringPrivate Function Delimiter(ByVal texte As String, ByVal delimiter1 As String, ByVal delimiter2 As String) As Variant
    Dim interne() As String
    Dim cpt As Integer
    Dim Flag1 As Boolean
    Dim flag2 As Boolean
    ReDim Preserve interne(1)
    qte = 1
    Do While cpt < Len(texte)
    cpt = cpt + 1
    Debug.Print Mid$(texte, cpt, 1)
    If Mid$(texte, cpt, 1) = delimiter1 And Not Flag1 Then
    Flag1 = True
    GoTo lenext
    End If
    If Mid$(texte, cpt, 1) = delimiter2 And Flag1 = True Then
    Flag1 = False
    flag2 = True
    qte = qte + 1
    ReDim Preserve interne(qte + 1)
    GoTo lenext
    End If
    If Flag1 Then interne(qte) = interne(qte) & Mid$(texte, cpt, 1)
    lenext:
    Loop
    Delimiter = interne
    End Function